0

リンク「zmeniťpozíciu」をクリックすると、最も近いimgを変数に保存したいと思います。

<table border="1">
    <tbody> 
        <tr>        
            <th rowspan="3">1</th>
            <th>Nadpis</th>
            <td colspan="9">Eiusmod tempor</td>
            <td> <a href="#">zmeniť</a> </td>
            <td rowspan="3"> <a class="zmenit-poziciu" href="#">zmeniť pozíciu</a> </td>
        </tr>
        <tr>
            <th>Text</th>
            <td colspan="9">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam ...
            </td>
            <td> <a href="#">zmeniť</a> </td>
        </tr>
        <tr class="obrazok">
            <th>Obrázok</th>
            <td colspan="9"> <img alt="img" src="http://lorempixel.com/500/120/sports/1"> </td>
            <td ><a href="#">zmeniť</a></td>

        </tr>

    </tbody>
</table>

これを試しましたが、機能しません

$(".zmenit-poziciu").click(function() {

        var img = $(this).parent().closest("obrazok").html();
        alert(img);
        return false
    });

デモ

4

3 に答える 3

0

このような画像を取得できます

$(".zmenit-poziciu").click(function () {
  var img = $(this)
            .closest('tr') // get to the tr level
            .nextAll(".obrazok:first") // find the next tr sibling with class=obrazok
            .find('img'); // find the img
  alert(img.attr('src'));
  return false;
});

http://jsfiddle.net/wirey00/Z5CeE/

于 2013-01-07T17:22:25.587 に答える
0

間違ったセレクターが使用されました。

変化する:-

var img = $(this).parent().closest("obrazok").html();

に:-

var img = $(this).parent().closest(".obrazok").html();

現在のセレクターを使用して、実際には obrazok というタグを探していますが、これはドキュメントにはないと思います。

于 2013-01-07T17:12:42.017 に答える
0

Closest は、上位の階層でセレクターに一致する最も近い要素を取得します。ドキュメント

ドキュメントから:

セット内の各要素について、要素自体をテストし、DOM ツリー内のその祖先をたどって、セレクターに一致する最初の要素を取得します。

あなたの場合、クリックされたリンクから見た場合、tr一致.obrazokは階層内で高くありません。

DOM をトラバースして、DOM 内の最も近い要素を取得するものが必要になります。役立つと思われる別の質問に対して投稿したこの回答: https://stackoverflow.com/a/12873187/921204

次のように使用できます。

$(".zmenit-poziciu").click(function() {
    var img = nextInDOM('.obrazok', $(this));
    alert(img);
    return false
});
于 2013-01-07T17:16:37.763 に答える