Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Jquery 每个只在第一个元素上工作_Jquery_Html_Loops_Indexing_Each - Fatal编程技术网

Jquery 每个只在第一个元素上工作

Jquery 每个只在第一个元素上工作,jquery,html,loops,indexing,each,Jquery,Html,Loops,Indexing,Each,我很难理解jQuery。每个。 我有以下代码: $('#testDiv').each(function(index, domEle){ $(this).text(index); }); 和下面的HTML <div id="p18"> <div class="inner"> <span>...</span> <p class="right">...</p>

我很难理解jQuery。每个。 我有以下代码:

$('#testDiv').each(function(index, domEle){    
    $(this).text(index);
});
和下面的HTML

<div id="p18">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div id="testDiv"></div>
    </div>
</div>
<div id="p19">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div id="testDiv"></div>
    </div>
</div>
<div id="p20">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div id="testDiv"></div>
    </div>
</div>

...

...

...

当脚本运行时,它只对第一个testDiv有效,因为它正确地将文本设置为0,而对其他testDiv无效

我的总体目标是编写一个脚本,根据另一个div的高度设置div的高度。高度不同,所以我认为循环结构是一种可行的方法(除非我弄错了?)


我对jq代码做了哪些错误处理?

这不是每个
方法的问题。您为多个元素指定了相同的
id
,这是不受支持的

改用类,您可以找到所有元素


演示:

您不能对不同的元素使用相同的
#id
。尝试重命名其余的,你会得到你想要的结果

或者这样做(无需添加任何类即可工作-更干净的代码)


id
选择器最多返回一个元素

您不应拥有多个具有相同id的元素。这是一个无效的HTML

这将起作用,但您应该改为修复HTML:

$('div[id="testDiv"]')...
你真正应该做的是:

<div id="p18">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div class="testDiv"></div>
    </div>
</div>
<div id="p19">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div class="testDiv"></div>
    </div>
</div>

您的html无效。ID必须是唯一的。您应该将
id=“testDiv”
更改为
class=“testDiv”

HTML

<div id="p20">
    <div class="inner">
        <span>...</span>
        <p class="right">...</p>
        <div class="testDiv"></div>
    </div>
</div>
$('.testDiv').each(function(index, domEle){    
    $(this).text(index);
});

不能在html页面中指定相同的div id

<div id="testDiv"></div>

}))

ID在整个页面中应该是唯一的,您观察到的行为是完全正常的。您的HTML无效:)重复ID修复具有相同ID的多个元素的问题,然后尝试使用
$。每个
在一个类上,例如
$('.inner')。每个(函数…
facepalm不能相信我忘记了xD谢谢:)@Skye。请不要使用我的属性选择器解决方法。它仍然是一个无效的HTML。不用担心。testdiv是用jq添加的,所以这是一个快速修复方法,我没有为我选择的任何元素设置id。在我的例子中,将domEle添加到我的函数中就成功了。谢谢
$('.testDiv').each(function(index, domEle){    
    $(this).text(index);
});
<div id="testDiv"></div>
<div class="testDiv"></div>
$('.testDiv').each(function(index, domEle){    
$(this).text(index);