3

私のHTML構造は以下のようになります:

<div id="mainDiv">
<table></table>
<table></table>
<table>
<tr>
<td id="first">FirstCell</td><td id="second">SecondCell</td>
</tr>
<tr>
<td></td><td></td>
</tr>
</table>
</div>

ここで、最初の td の値に基づいて 2 番目の td の内容を見つけたいと思います。

以下を試してみましたが、うまくいかないようです。

$("#mainDiv tr td:contains('first')").each(function(){
                var secondCell = $(this).find('#second').value();
            });

どんな助けでも大歓迎です。

4

5 に答える 5

4

あなたのhtml構造に基づいて、あなたが望むものをこのように達成することができます

$("#mainDiv tr td:contains('First')").each(function(){
                var secondCell = $(this).next().text();
                console.log(secondCell);
            });​

働くフィドル

@Blender.value()が関数ではないと言ったように、.text()代わりに使用してください。

于 2012-06-14T04:42:58.733 に答える
1

value は有効なメソッドではありません。

要件に応じて、これらのいずれかを使用する必要があります。

.html()  // for html content.
.text()  // for text content.
.val()   // for value attribute. Like value of input element.
于 2012-06-14T04:43:09.060 に答える
0

.value()関数ではありません。おそらく探しているのは.text().

#secondあなたの構造を見ると、あなたは相対的に探していることがわかります#first。を持つ要素が複数ありid="second"ますか? その場合、属性は単一の要素に固有であることを意図しているため、jQuery で多くの問題に遭遇することになります。プロパティを使用して複数の要素を識別する場合は、代わりにid使用する必要があります。classid

于 2012-06-14T04:39:05.163 に答える
0

検索と言うとき、正規表現を使用することを意味しますか? または最初のものとの関係によって。

関係による場合、これは機能します

$("#mainDiv tr td:contains('first')").each(function(){
            var secondCell = $(this).next().html();
        });

.text() は、実行内容によっては .html() よりも優れている場合があります。実際の例と詳細については、こちらを参照してください。

正規表現の場合は、最初に探しているものを提供する必要があります<td>

于 2012-06-14T04:53:35.473 に答える
0

を使用しているeachため、id の代わりにクラス名を使用する必要があります。これを試してください。

$("#mainDiv tr td:contains('first')").each(function(){
    var secondCell = $(this).siblings('.second').text();
});
于 2012-06-14T04:43:20.247 に答える