• ベストアンサー

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"を取り出したい場合はなんと打てばいいのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

jqueryですと、 $("td:nth-child(2)").attr('href') で取れると思います。

crouch-tancle
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.3

セレクタ 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() を用い、どうしてもやむをえない場合のみライブラリ系を(特製を把握しつつ)使って下さい。

crouch-tancle
質問者

お礼

ありがとうございます。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

E:nth-childではタグの属性を検証できません E[foo*="bar"] の形のものを使います。 今回の場合は a[href*="http://www.com"] こんな感じで。

crouch-tancle
質問者

お礼

ありがとうございます。

関連するQ&A