0

ページ番号の含まれるスパンをターゲットにして、少し奇妙な問題が発生しています(データテーブルにいます)。これは私が実行しているhtmlです。

<span>
    <span class="target_me fg-button ui-button ui-state-default ui-state-disabled">1</span>
    <span class="target_me fg-button ui-button ui-state-default">2</span>
</span>

しかし、各番号にクリックイベントを置いて電話をかけると

alert($(this).parent().html())

最初のスパンだけでなく、上記のコード全体をレンダリングします。これにより、ページ番号「2」または「1」のみがレンダリングされます。

alert($(this).html())

なぜこれが起こっているのか誰にも分かりますか?

ありがとう!

4

4 に答える 4

3

あなたはまさにあなたが求めていたものを手に入れています。のタグのみが必要な場合はthis、次を試してください。

alert( $(this).wrap('<div>').parent().html() );
$(this).unwrap();

より短い手法では、DOMの外部でクローンを作成します。

alert( $('<div>').append($(this).clone()).html() );
于 2012-09-28T15:34:54.817 に答える
1

これは予想される動作です。使用$(this).parent().html()すると、コードの最初のコードが取得spanされます(以下の大文字の場合)

<SPAN>
    <span class="target_me fg-button ui-button ui-state-default ui-state-disabled">1</span>
    <span class="target_me fg-button ui-button ui-state-default">2</span>
</SPAN>

そして当然、その中のすべてのHTMLを印刷します。

呼び出す$(this).html()と、クリックしたSPANが取得されます。その場合、クリックした番号に基づいて1または2を取得します。

于 2012-09-28T15:35:11.540 に答える
1

私はあなたがこれを望んでいると思います:

alert(this.outerHTML)
于 2012-09-28T15:38:29.523 に答える
0
alert($(this).parent().html())

これは<span>タグに移動し、その中の HTML に警告します。

$(this).html()アイテムがクリックされると、個々のスパン内の HTML がレンダリングされるため、意図したように 1 と 2 になります。

何を達成しようとしていますか?

于 2012-09-28T15:34:20.567 に答える