Javascript 无法更改。html()

Javascript 无法更改。html(),javascript,jquery,Javascript,Jquery,我有一个简单的html,请参见: 但它只为第一个选择器将[index]添加到元素的html中。 有人能解释为什么吗 UPD 答案不完全正确,但尽管如此,皮特还是让我了解了这个问题。 因此,为了使其发挥作用,有必要进行改变 $(element).html(elementHTML); 到 当然,这不是效率问题,而是如何就地解决问题。毫无疑问,真正的解决办法是使用.prepend方法 $('section div:first-child') :first-child CSS伪类表示作为 其父元素的

我有一个简单的html,请参见:

但它只为第一个选择器将[index]添加到元素的html中。 有人能解释为什么吗

UPD

答案不完全正确,但尽管如此,皮特还是让我了解了这个问题。 因此,为了使其发挥作用,有必要进行改变

$(element).html(elementHTML);

当然,这不是效率问题,而是如何就地解决问题。毫无疑问,真正的解决办法是使用.prepend方法

$('section div:first-child')
:first-child CSS伪类表示作为 其父元素的第一个子元素

如果您只想选择部分下方一级的divs,可以尝试:

$('section > div')

当您设置html时,它下面的元素不会得到更新,而是会被替换


您的代码正常工作,只是更新不再附加到DOM的元素。

您的问题是第一次出现section div实例:第一个子项是顶级div div1,因此当您替换此div的html时,循环中的div 2和3不再存在于DOM中,因此它们不会得到更新

不替换html,只需在文本前加上前缀:

$('section div:first-child').each(function(index, element) {
  $(element).prepend('[' + index + ']: ');
});

由于每次都替换HTML,因此元素会被动态替换。为了避免这种情况,不要替换整个HTML,只需在它前面加$.prepend即可。试试看:

$function{ $'section div:first child'。每个函数索引,元素{ console.log'element.html之前:'+$element.html; var elementHTML='['+index+']:';
$element.prependelementHTML;//我认为op想要每个div的第一个子div,但问题是为什么只应用第一个索引,因为它应该应用3次。更改选择器并不能解决这个问题。我认为他们试图在div1.1和div1.2的末尾加上一个零。但是有点困惑h CSS选择器从问题中,再清楚不过了:我想浏览所有的div部分:第一个子元素
$('section div:first-child')
$('section > div')
$('section div:first-child').each(function(index, element) {
  $(element).prepend('[' + index + ']: ');
});