Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/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_Each - Fatal编程技术网

为每个元素执行JQuery函数

为每个元素执行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><

我正在尝试执行一个JQuery函数,该函数将为div id“answerrr”下的每个元素取消输出空div中的文本(如果为空),但是脚本将只搜索第一个div并向其中添加文本,而忽略其余部分。也许我没有正确使用.each()函数

<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!