为每个元素执行JQuery函数
我正在尝试执行一个JQuery函数,该函数将为div id“answerrr”下的每个元素取消输出空div中的文本(如果为空),但是脚本将只搜索第一个div并向其中添加文本,而忽略其余部分。也许我没有正确使用.each()函数为每个元素执行JQuery函数,jquery,html,each,Jquery,Html,Each,我正在尝试执行一个JQuery函数,该函数将为div id“answerrr”下的每个元素取消输出空div中的文本(如果为空),但是脚本将只搜索第一个div并向其中添加文本,而忽略其余部分。也许我没有正确使用.each()函数 <b><div id="answerrr"></div></b> <b><div id="answerrr"><p>Not Empty</p></div><
<b><div id="answerrr"></div></b>
<b><div id="answerrr"><p>Not Empty</p></div></b>
<b><div id="answerrr"></div></b>
<script>
$('#answerrr').each(function() {
if ($('#answerrr').is(":empty")) {
$('<p>Empty!</p>').appendTo($(this));
}
});
</script>
不空
$('#answerr')。每个(函数(){
如果($('#answerr')。为(“:空”)){
$('空!)。附加到($(此));
}
});
另外,如果我的页面要通过Ajax加载更多内容,我将如何确保重新执行此脚本呢?首先,id必须是唯一的。改用类: html
<b><div class="answerrr"></div></b>
<b><div class="answerrr">Not Empty</div></b>
<b><div class="answerrr"></div></b>
不空
js
$('.answerrr').each(function () {
if ($(this).is(":empty")) {
$('<p>Empty!</p>').appendTo($(this));
}
});
$('.answerrr')。每个(函数(){
如果($(this).is(“:empty”)){
$('空!)。附加到($(此));
}
});
您的基本问题是,在HTML中,多个元素具有相同ID是不合法的。请改用类 修复后,不要在
中再次使用相同的选择器。每次调用$(this)
引用当前元素即可
您还可以从循环中删除:empty
测试,并将其作为选择器的一部分,并且由于.append
将愉快地处理多个元素,因此实际上您可以摆脱。每个循环,使您的整个代码都是这样的:
$('.answerrr:empty').append('<p>Empty!</p');
$('.answerr:empty')。追加('empty!