我想将用户的输入复制到多个div。
我尝试使用.each(),因为我想将其应用于随后的每个div。
到目前为止,我已经编写了此代码,但仅适用于第一格。

<input type="text" name="someText" id="someText">



$("#someText").keyup(function() {
    var x = $("#someText").val();
    $("#copy").each(function () {
        $(this).html(x);
    });
});


<div id="copy"></div>
<div id="copy"></div>


最好的祝福,

费利克斯

最佳答案

IDs have to be unique


id = name [CS]
此属性为元素分配名称。此名称在文档中必须唯一。


尽管行为未指定,但大多数浏览器都会返回具有给定ID的文档的第一个元素。

如果要选择多个元素,请改用类:

HTML:

<div class="copy"></div>
<div class="copy"></div>


JavaScript:

$("#someText").keyup(function() {
    $(".copy").text(this.value);
});


其他一些要点:


您不必使用.each,setter方法通常总是应用于集合的所有元素。
在事件处理程序中,this引用处理程序绑定到的元素。您不必再次使用选择器。
如果您已经有一个DOM元素的引用,则直接访问其属性之一而不是通过jQuery通常更简单。

10-05 20:29
查看更多