私は次のHTMLコードを持っています:
<div id="mycontainer">
<p> title </p>
<ul>
<li><span>**</span><a href="...">KEY</a></li>
</ul>
<ul>
...
</ul>
</div>
KEY値を取得するにはどうすればよいですか?言い換えると、id = "mycontainer"のこのdivから、要素のコンテンツである最初のulからどのように取得しますか?
私は次のHTMLコードを持っています:
<div id="mycontainer">
<p> title </p>
<ul>
<li><span>**</span><a href="...">KEY</a></li>
</ul>
<ul>
...
</ul>
</div>
KEY値を取得するにはどうすればよいですか?言い換えると、id = "mycontainer"のこのdivから、要素のコンテンツである最初のulからどのように取得しますか?
$("#mycontainer ul:first a").text();
ここに、フィドルがあります:http: //jsfiddle.net/8tvTt/
このようなものはあなたが求めているものを達成します:
$("#mycontainer ul:first a").text();
これは機能します:
$('#mycontainer ul:eq(0) a').text();
これも機能します:(より読みやすい)
$('#mycontainer ul:first a').text();
これを使って:
$('#mycontainer a').text();
既存の回答の多くはあなたが求めているものを達成しますが、あなたが本当に求めているのは(または少なくとも本当に必要なもの)、jQueryセレクターとDOMトラバースにある程度精通していることだと思います。
多くの人は、リンク要素の内部テキストが必要だと思っているようですが、そうであるかどうかはわかりません。このマークアップのバリエーションを提供せず、セレクターの速度を気にすることなく、提供したマークアップ$('a').text();
で唯一のものであるため、愚かなことを含め、任意の数の回答が必要なことを実行しa
ます。そして、私たちは状況についてしか推測できません。それぞれの答えがどのように機能するか(そして、なぜ失敗したものが機能しないのか)とその理由を理解することはより役立つでしょう。
セレクターの特異性が望ましいですが、実際にDOMを経由するコストがかかる可能性があるもののコストと利点を比較検討する必要があります。リンクのテキストコンテンツを常に取得しますか?HTMLが含まれている可能性はありますか?あなたは実際にラッピング<a>
も手に入れたいですか?
a
内部のみのテキストコンテンツが必要な場合は、次の#mycontainer
ことを確認してください。
$("#mycontainer ul:first a").text();
しかし$('#mycontainer').find('a').text();
、もっと速いかもしれません。(待って、何find()
ですか?、あなたは尋ねます、そしてなぜそれはより速いのですか?)しかし、KEYが正しくフォーマットさ<strong>
れていて、それをあなたがそれでしていることに引き継ぐことを望むならどうしますか?代わりに使用することをお勧めします.html()
。a
それ自体が必要な場合は、次のことを行ってください。
$("#mycontainer ul:first a");
しかし、それぞれli
がa?
$("#mycontainer ul:first li:first a").clone();
スパンも欲しいですか?
$("#mycontainer ul:first li:first").clone();
また
$("#mycontainer ul:first li:first").html();
ラッピングもしたい<li>
ですか?
$("#mycontainer ul:first li:first").clone();
遊んで、もう少し読んでください。そうすれば、すべての人(私を含む)が、ばかげた、簡単な担当者のためにそれほど貪欲になることはありません。
jqueryセレクターを読む必要があります...しかしこれを使用してください
$('#mycontainer ul:first a').text();