2009-11-04 26 views
11

私のテーブルのtd内の要素を選択したいのですが、構文を理解できません。 これは私が試したものです:JQueryはTD内の要素を選択します

$("table > td:#box") 

これは私のテーブル構造のサンプルです:

<div id="main"> 
<div id="today"> 
    <table id="list" width="100%" cellpadding="4" cellspacing="0" border="0" style="font-size: 10px; border-collapse:collapse;"> 
    <tr id="109008"> 
    <td class="tdstd"> 
    <a class="box" href="link"></a> 
    </td> 

やChromeのDOMインスペクタを使用して:

alt text

+0

関連するHTMLコードを掲載して、正確にどの部分から抜け出すのかを教えてください。 – BalusC

+0

テーブルと要素でHTMLのスニペットを表示することができます。要素は "box"というIDを持つdivですか? –

+0

あなたが必要なものをundertandに - あなたはテキストを持っていて、あなたは "テキスト"または "ID"を取得したいですか? – cupakob

答えて

17

まあ、「#box固有のIDであるので、ID "box"を持つDOMオブジェクトを意味します。あなたはそれを直接選択することができます。しかし、あなたのコードは、あなたが変更しなければならないid "box"を持つ要素がいくつかあることを示唆しています。あなたは、TDの内側にあなたの要素にクラスを割り当てる必要があります、またはそれはボックス内にのみDIVやSPANことにより独特だ場合、あなたはこのようにアクセスすることができます:「>」セレクタがあることを意味していること

$("table td .box") 

注意TDはTABLEの直接の子でなければなりません。私はあなたの間に少なくともTRレベルがあると仮定しているので、どちらもうまくいきません。上記の私の例では、テーブルの子である任意のTD内のクラス "ボックス"を持つすべての要素に一致します。

はもちろん、私は同様にテーブルの上にクラスを設定し、このようなものを使用します。

$("table.boxes td .box") 

ただ、あなたが誤ってあなたが仕事をしたい範囲外のものを選択していない

。あなたは今では、私は私の答えを編集していますHTMLを追加した

$("table#list a.box") 
+2

+1を選択したいが、彼はすでにテーブル上にIDを持っているが、これはかなり効率的である - $( '#list td a.box')はここの「正しい」解決策だ – annakata

+0

正しいが、私通常階層選択を行うときにタグ名を使用して、選択しているページのどの部分を見ることができるかを確認します。 idは "tablelist"だったと思いますが、 "list"は非常に一般的なので、jQueryコードが長く動くと混乱することがあります。しかし、すべて言った、あなたは明らかに正しいです:) – Sandman

1
$("table tr td .box") 

このトリックを行う必要があります。

-2

このセレクタ私はわからないんだけど、私が思うに、あなたが$("td#box")を必要とする...

+1

これは正しくありません - #はIDセレクターを意味し、 "ボックス"のIDを持つelmentはありませんこのような – annakata

+0

と一緒にtdはもちろん、 "テーブル> td:#ボックス")とコードの平和ではありません:) – cupakob

+0

ええ私はそれを気づいた - それは私があなたをdownvoteしなかった理由は、単にコメント: – annakata

0

...

table td a.box 

は「含まれていclass属性を持つaタグを見つけるために、jQueryのを伝えますボックス"。このaタグは、の内部にあるtdの内部にある必要があります。

9

最も効率的なセレクタは次のようになります。

$('#list').find('a.box'); 

か:

$('a.box', $('#list')[0]); 

最初のテーブルidを選択することであなただけのテーブルにあなたの範囲を設定していると、あなたは要素を検索することができますあなたはそのテーブルで必要なものです。

2番目のセレクタは同じで、何かを選択していて、2番目のパラメータとしてスコープを指定しています。

最初の文字を読むのは簡単です。

関連する問題