-4

これから img 要素を取得するにはどうすればよいですか:

<td><img src="blah" /></td>

ありがとう。

<td></td>編集:私が言いたいのは、上記は、反復ごとに各ステ​​ートメントをループするときに持っているものであり、.. ドキュメント全体を検索しているわけではありません。

さらに編集:これはより多くのコードです。問題の核心に迫ろうとしましたが、十分に説明できませんでした。

$(this).closest('tr').children().each(function(){
//some code

        });

これは、テーブル行のすべての td 要素を取得する各関数です。テキストの場合、text() 関数を使用してテキストを取得できますが、

    <td><img /></td>

imgの取り出し方がわかりません。それは説明に役立ちますか?

ありがとう

4

3 に答える 3

0

さらに編集してください:使用find

$(this).closest('tr').children().each(function(){
    // Get all `img` elements that are in this cell
    var $img = $(this).find("img");
});

質問が明確になる前の古い回答

これ以上のコンテキストがないと、本当にうまく答えるのが難しいですが、基本的には、jQuery()関数 (通常はエイリアス$()) を CSS セレクターと共に使用します。つまり、次のようになります。

var img = $("td img");

または子供だけ

var img = $("td > img");

ただし、どちらの場合も、要素の子孫 (最初の例) または直接の子 (2 番目の例) であるすべての 要素を取得することに注意してください。imgtd

さらに、上記のどちらの場合でも、一連の一致する要素をラップする jQuery オブジェクトを取得します。実際の基になる DOM 要素を取得するには、オブジェクトにインデックスを付けます。たとえば、これにより、ドキュメント内の要素imgの子孫である最初の要素が得られます。td

var rawImgElement = $("td img")[0];

...そして、何もない場合は、undefined.


あなたの編集を再:

...私は取り除きたい<td></td>

あなたが達成しようとしていることはまだ非常に不明です。これは、すべてのimg要素をテーブルの外に移動し、その後に配置する例です (もちろん、の直接の子にすることはできないためimg、要素を要素の外に移動することはできません)。tdimgtr

HTML:

<table id="myTable">
<tbody>
<tr>
<td><img src="blah1.png"></img></td>
<td><img src="blah2.png"></img></td>
<td><img src="blah3.png"></img></td>
</tr>
</tbody>
</table>

JavaScript:

$(function() {
    var $myTable = $("#myTable");
    $("td > img").each(function() {
        var $img = $(this),
            $td = $img.parent();
        $img.insertAfter($myTable);
    });
});

...もちろん、テーブルが空である可能性があり、行などを削除する必要がある場合があります.

于 2012-04-27T08:30:05.940 に答える
0

これはイメージタグを参照します:

$("td img")
于 2012-04-27T08:31:09.707 に答える
0

すべての td が何かを操作するために何かをしている場合

$('#table td').each(function() {
var img;
img = $(this).find('img');
alert(img.attr('src'));
});
于 2012-04-27T08:32:51.737 に答える