更改具有相同ID的输入类型的所有值

时间:2015-04-01 09:51:18

标签: javascript jquery dom

我目前得到的是一个问题,我想改变id与输入类型匹配的每个元素值。请看看我的jsFiddle,这应该为你清理很多。问题是这些值不会改变所有输入类型,只会改变该id的第一个输入类型。尝试使用.each功能,但没有帮助。

HTML

<input type="text" id="first" value="tesdafsdf" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />

Jquery的

$('#first').keyup(function() {
    updateSearch();
});

var updateSearch = function() {
    $('#second').each(function(index, value) {
        this.value = $('#first').val();
    });
};

//Change the values for testing purpose
updateSearch();

http://jsfiddle.net/ZLr9N/377/

3 个答案:

答案 0 :(得分:8)

ID用于唯一标识元素,因此元素的ID必须是唯一的

  

它必须在文档中是唯一的,并且通常用于检索   元素使用getElementById。 id的其他常见用法包括使用   使用ID as a selector为文档设置样式时元素的CSS

当你必须对多个元素进行分组时,最简单的方法之一就是使用class属性。

当您使用id选择器时,它将仅返回与ID匹配的第一个元素,其余元素将被忽略。

所以

&#13;
&#13;
$('.first').keyup(function() {
  updateSearch();
});

var updateSearch = function() {
  $('.second').val($('.first').val());
};

//Change the values for testing purpose
updateSearch();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="first" value="tesdafsdf" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
&#13;
&#13;
&#13;

答案 1 :(得分:3)

不幸的是,HTML元素ID需要不同,它们应该是唯一标识符。但是,类可以应用于多个元素,如:

<强> HTML

<input type="text" id="first" value="tesdafsdf" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />
<input type="text" class="second" />

<强>的Javascript

$('#first').keyup(function() {
    updateSearch();
});

var updateSearch = function() {
    $('.second').each(function(index, value) {
        this.value = $('#first').val();
    });
};

//Change the values for testing purpose
updateSearch();

答案 2 :(得分:0)

使用以下代码通过ID属性设置字段的值

$(document).ready(function() {
$("[id='second']").each(function(){
      $(this).val('test');
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<input type="text" id="first" value="tesdafsdf" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />
<input type="text" id="second" />