繁体   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