在jQuery中的Foreach

use*_*940 1 jquery

我正在尝试根据特定h2的内容为每个h2添加一个标记.这是我尝试过的:

jQuery(document).ready(function() {
    jQuery( "h2" ).each(function(){
        var $headingcontent = jQuery('h2').html().toLowerCase();
        jQuery('h2').prepend('<a id="'+ $headingcontent +'"></a>');
    });
});
Run Code Online (Sandbox Code Playgroud)

然而,这似乎只获得第一个h2的内容并将其添加到每个h2,它会多次执行,具体取决于页面上有多少h2.

我想要它做的是转这个:

<h2>Heading 1</h2>
<h2>Heading 2</h2>
Run Code Online (Sandbox Code Playgroud)

在...

<h2><a id="heading 1"></a>Heading 1</h2>
<h2><a id="heading 2"></a>Heading 2</h2>
Run Code Online (Sandbox Code Playgroud)

zer*_*kms 6

jQuery( "h2" ).each(function(){
    var $headingcontent = jQuery(this).html().toLowerCase();
    jQuery(this).prepend('<a id="'+ $headingcontent +'"></a>');
});
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你根本不需要额外的a元素:

jQuery( "h2" ).each(function(){
    var $this = jQuery(this);
    $this.attr('id', $this.html().toLowerCase());
});
Run Code Online (Sandbox Code Playgroud)