2

编辑:此代码工作正常,忽略了 div 堆叠在彼此之上,被视觉反馈愚弄:(对不起。

我一直在 stackOverflow 上搜索每个问题并阅读 jquery 文档,但我不知道为什么这个片段只在其中一个 div 中放置“bar”。我在这里想念什么?所有示例似乎都以这种方式工作:

<div class="foo"></div>
<div class="foo"></div>

$(".foo").each(
  function() {
    $(this).append("bar");
  }
);

我选择所有 foo 类元素,对它们进行迭代,在每个函数中这是当前元素对吗?似乎不是……我做错了什么?

我也试过:

function(index, element) {$(element)等相同的结果。

4

2 回答 2

6

您需要提供一个带有索引和元素参数的函数,这将允许您遍历 jQuery 选择的对象。

您只能在文档准备好后执行此操作,因此请确保它已准备就绪,或者在准备就绪时打包

 <div class="foo"></div>
 <div class="foo"></div>

<script type="text/javascript">
$(document).ready(function(){

    $(".foo").each(function(index, element) {
        $(element).append("bar");
      }
    );
});
</script>
于 2012-08-12T09:48:18.263 回答
1

如前所述,您的代码和备用短版本(如pimvdb问题评论中所述)工作得非常好。

演示

您很可能遇到了代码不在 a 中的问题,$(document).ready(function(){});或者您对 jQuery 库的引用丢失了。

在.ready()中放置代码可确保在执行脚本之前 DOM 已完全加载(图像除外)。

于 2012-08-12T09:58:41.383 回答