dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

jqueryですと、



$("td:nth-child(2)").attr('href')

で取れると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/02/09 22:46

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

ありがとうございます。

お礼日時:2012/02/09 22:47

E:nth-childではタグの属性を検証できません



E[foo*="bar"]
の形のものを使います。
今回の場合は

a[href*="http://www.com"]

こんな感じで。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/02/09 22:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!