3

動的に生成されたページをトラバースして、特定のスパン ID を取得し、その ID を href 内で前のスパンに追加しようとしています。現在、これにより、各インスタンスのそれぞれの単一リンクではなく、各 h2.classA 内に両方のリンクが生成されます。代わりに each() を h2 に割り当てる必要がありますか? どんな助けでも大歓迎です。

既存の HTML

    <h2>
    <span class="classA"> </span> 
    <span class="classB" id="somename"> SomeName </span>
    </h2>

    <h2>
    <span class="classA"> </span> 
    <span class="classB" id="anothername"> SomeName </span>
    </h2>

試み:

    $("h2 span.classB").each(function() {
    var content = $(this).attr('id');

    $('h2 span.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              
    });

目的の HTML 結果

    <h2>
    <span class="classA"><a href="index.php?title='+somename+'"> LINK1 </a></span> 
    <span class="classB" id="somename"> SomeName </span>
    </h2>

    <h2>
    <span class="classA"><a href="index.php?title='+anothername+'"> LINK2 </a></span> 
    <span class="classB" id="anothername"> AnotherName </span>
    </h2>
4

2 に答える 2

1

交換

$('h2 span.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              

$(this).prev('.classA').append('<a href="index.php?title='+content+'"> edit me </a>');              
于 2012-11-26T18:02:38.220 に答える
1

各反復ですべてのclassA要素にアンカーを追加しています。前のスパン要素を選択するには、次のprev方法を使用できます。

$("h2 span.classB").each(function() {
    $(this).prev().append('<a href="index.php?title='+this.id+'"> edit me</a>');              
});

http://jsfiddle.net/c7V9z/

于 2012-11-26T18:04:10.013 に答える