0

私は次の<td>ようなものを持っています:

<td class="myTDClass">
    <span class="spanClass">Header</span>
    <br />
    <img class='myImages' style='cursor: hand;' onclick='doSomething(control)' alt='this is my alt Text'></img>
    <br />
    <span style="color: #123456;">More Text</span>
    <br />
    <a class='findThisClass'>Insert Alt Text Here</a>
</td>

これにより、altタグを新しいテキストに設定するjQueryコードが呼び出されます。次に、<a>要素を新しいテキストに設定します。jQueryコードは次のとおりです。

doSomething = function(control)
  {
    var $myControl = $(control);
    $myControl.attr("alt", "This is the new Alt Text!");

    var $newControl = $(control).parent().siblings().find(".findThisClass").first();
    alert($newControl.find("a").text());
  });

jQueryコードは、altタグを適切に設定しますが、が見つかりません<a class=findThisClass />

私は間違ったものを使用していると思い.parent()ます.siblings()。誰かが私のエラーを見つけることができますか?ここでの考え方は、要素のすぐ内側を検索でき、の要素の他の要素には触れないことです。<td><a><td>

4

4 に答える 4

3

代わりにこれを試してください:

var $newControl = $(control).closest('.myTDClass').find(".findThisClass");
alert($newControl.text());

またimg、次の代わりに自己終了タグがあります。

<img></img>

使用するだけです:

<img... />

そして代わりに:

onclick='doSomething(control)'

使用する:

onclick='doSomething(this)'

そのため、jQueryは実際に操作するためのコントロールを持っています:)

実例

于 2012-07-06T19:25:42.047 に答える
2

<a>と同じテーブルセルにあるを検索する場合<img>は、を使用する必要はありませんparent()。あなたがする必要があるのは、.siblingsTryを呼び出すことだけです:

var $newControl = $(control).siblings('a.findThisClass').first();

controlこれは、テーブルセル内の画像を指すことを前提としています。

于 2012-07-06T19:26:21.123 に答える
2
$("a.findThisClass", $myControl).first()
于 2012-07-06T19:26:30.877 に答える
2

aは画像の兄弟であるため、単純に次のようになります。

$(control).siblings(".findThisClass")
于 2012-07-06T19:26:34.587 に答える