- ベストアンサー
td:nth-childを使ってa要素を取得したい
<table> <tr> <td>右がリンクになります</td> <td><a href="http://www.com">ウェブサイト</a></td> </tr> <tr> : : </tr> </table> というテーブルがあります。 このとき、たとえば一番上の行では"td:nth-child(1)"だと"右がリンクになります"、"td:nth-child(2)"だと"ウェブサイト"に該当しますが、"http://www.com"を取り出したい場合はなんと打てばいいのでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
jqueryですと、 $("td:nth-child(2)").attr('href') で取れると思います。
その他の回答 (2)
- Chaire
- ベストアンサー率60% (79/130)
セレクタ API を使う場合、できるだけ絞り込む形にした方が良いです。 var a = document.querySelector('table:nth-of-type(1) tr:nth-child(1) > td:nth-child(2) > a[href*="www.com"]'); if (a) a.href; ただし、jQuery 内部で用いられている Sizzle など、お手製エンジンが走るような場合、作り方によっては長いセレクタに膨大な時間がかかります。この場合、組み合わせ爆発が起きなくなるまで、子孫セレクタを極力使わないようにします。 table > tbody > tr:nth-child(1) a[href^="http://www.com"] なるべく、ネイティブ実装の querySelector() を用い、どうしてもやむをえない場合のみライブラリ系を(特製を把握しつつ)使って下さい。
お礼
ありがとうございます。
- askaaska
- ベストアンサー率35% (1455/4149)
E:nth-childではタグの属性を検証できません E[foo*="bar"] の形のものを使います。 今回の場合は a[href*="http://www.com"] こんな感じで。
お礼
ありがとうございます。
お礼
ありがとうございます。