Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有相同id的两个元素,希望选择一个包含在特定div中的元素_Javascript_Html - Fatal编程技术网

Javascript 具有相同id的两个元素,希望选择一个包含在特定div中的元素

Javascript 具有相同id的两个元素,希望选择一个包含在特定div中的元素,javascript,html,Javascript,Html,我有类似的东西 <div id='container0'> <input id='item0'> </div> <div id='container1'> <input id='item0'> </div> 我想选择第二个item0(divcontainer1中的一个)并将其id更改为item1。最好的方法是什么?是否有一种方法可以选择页面上的所有item0,然后检查它们的容器div并确保它与“co

我有类似的东西

<div id='container0'>
    <input id='item0'>
</div>


<div id='container1'>
    <input id='item0'>
</div>

我想选择第二个item0(divcontainer1中的一个)并将其id更改为item1。最好的方法是什么?是否有一种方法可以选择页面上的所有item0,然后检查它们的容器div并确保它与“container1”匹配


感谢您抽出时间。

有多个元素具有相同的
id
。因此,正确的解决方案是:解决这个问题。(通常使用
,但还有其他选项。)

也就是说,您可以为此使用
querySelector

var elm = document.querySelector("#container1 #item0");
但是由于结构无效,结果会因实现而异,如果许多(甚至大多数)返回
null
,我也不会感到惊讶


同样需要注意的是,真正的解决方案是修复无效的重复的
id
,使用
getElementById
获取
container1
元素,然后通过其子节点循环查找id==“item0”的元素可能比上述方法更可靠

具有多个具有相同
id的元素。因此,正确的解决方案是:解决这个问题。(通常使用
,但还有其他选项。)

也就是说,您可以为此使用
querySelector

var elm = document.querySelector("#container1 #item0");
但是由于结构无效,结果会因实现而异,如果许多(甚至大多数)返回
null
,我也不会感到惊讶


同样需要注意的是,真正的解决方案是修复无效的重复的
id
,使用
getElementById
获取
container1
元素,然后通过其子节点循环查找id==“item0”的元素可能比上述方法更可靠

在两个元素上具有相同的
id
属性是一个语法错误,因此您应该修复标记。违反规则时,浏览器行为未定义


如果您无法修复错误,出于某种奇怪的原因,您仍然可以找到具有
id=container1
属性的元素,如果该
id
属性是唯一的,然后选择其第一个子元素,如果标记与问题中给出的完全相同。

在两个元素上具有相同的
id
属性是语法错误,因此,您应该修复标记。违反规则时,浏览器行为未定义


如果您无法修复错误,出于某种奇怪的原因,您仍然可以找到带有
id=container1
的元素,如果
id
属性是唯一的,然后选择它的第一个子元素,如果标记与问题中给出的完全相同。

我知道您没有用jQuery标记它-但我认为这可能是一个解决方案。那么,给每个div一个类,然后用jQuery运行each循环怎么样

<div id='container0' class='container'>
    <input id='item0' class='item'>
</div>


<div id='container1' class='container'>
    <input id='item0' class='item'>
</div>

让我知道这是否接近你想要做的:)

我知道你没有用jQuery标记这一点,但我认为这可能是一个解决方案。那么,给每个div一个类,然后用jQuery运行each循环怎么样

<div id='container0' class='container'>
    <input id='item0' class='item'>
</div>


<div id='container1' class='container'>
    <input id='item0' class='item'>
</div>

让我知道这是否接近您想要做的:)

正如其他人提到的,您不能对多个元素使用相同的id。但是,您可以使用相同的名称。在更正多个ID的语法问题以使每个ID都唯一后,可以根据其所在的容器选择第二个输入元素。我将使用jQuery来实现这一点

例如(请注意,我不在电脑前-我在手机上,因此可能需要一些轻微的语法更改):

有关jQuery选择器,请参见此处:


要更改属性,请查看此处:

正如前面提到的其他属性一样,多个元素不能具有相同的id。但是,您可以使用相同的名称。在更正多个ID的语法问题以使每个ID都唯一后,可以根据其所在的容器选择第二个输入元素。我将使用jQuery来实现这一点

例如(请注意,我不在电脑前-我在手机上,因此可能需要一些轻微的语法更改):

有关jQuery选择器,请参见此处:


要更改属性,请查看此处:

不能有多个ID相同的元素。ID必须是唯一的。当您有多个时,第一个将被选中,其他将被忽略。请改为使用类名。请将
输入id
更改为
或由您创建的另一个标记id属性为HTML元素指定唯一的id(该值在HTML文档中必须是唯一的)。id属性最常用于指向样式表中的样式,并由JavaScript(通过HTML DOM)操作具有特定id的元素。不能有多个具有相同id的元素。id必须是唯一的。当您有多个时,第一个将被选中,其他将被忽略。请改为使用类名。请将
输入id
更改为
或由您创建的另一个标记id属性为HTML元素指定唯一的id(该值在HTML文档中必须是唯一的)。id属性最常用于指向样式表中的样式,并由JavaScript(通过htmldom)操作具有特定id的元素。