簡體   English   中英

jquery 附加 div onclick 第一次不工作

[英]jquery appended div onclick not work first time

這是我的代碼

html:

<input type="text" class="js-input">  
<div class="js-autofill"></div>

jquery:

var myarray = ['apple' , 'orange'];
myarray.forEach(element => {
$('.js-autofill').append(
`<div class="js-item" data-value="`+element+`">` +element+ `</div>`
)
})

$(document).on('click','.js-item',function(){
$('.js-input').val($(this).attr('data-value'))
})

問題是.js-item onclick 第一次不工作 - 當我雙擊時它工作我找不到原因

您需要將.val()更改為.text()以進行 div 單擊。

來自文檔

.val()方法主要用於獲取表單元素的值,例如 input、select 和 textarea。 當在空集合上調用時,它返回未定義。

$('.js-input').val($(this).text())

2 - 您在 append 中的 div 字符串有不匹配的引號,正確的順序應該如下所示。

`<div class='js-item' data-value='` + element + `'>` + element + `</div>`

閱讀它也很有幫助: 我什么時候應該在 JavaScript 中使用雙引號或單引號?


下面的工作代碼

 var myarray = ['apple', 'orange']; myarray.forEach(element => { $('.js-autofill').append( `<div class='js-item' data-value='` + element + `'>` + element + `</div>` ) }) $(document).on('click', '.js-item', function() { $('.js-input').val($(this).text()) })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="js-input"> <div class="js-autofill"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM