<a></a>の間のテキストを抽出する方法
質問
初めてjQueryを使わなければなりません...
<a class="Tag Resource" href="http://localhost/"
resource="http://localres/" property="prop">test</a>
を使用してテキストを抽出しようとしました var = $('a').find('Tag Resource').text();
そして var = $('a').find('Tag Resource').html();
しかし、それは機能しません。プレーンテキストとして「テスト」が必要です。
誰かがこれを行う方法を教えてくれますか?
前もって感謝します
解決
あなたは次のものを探していると思います:
var t = $("a.Tag.Resource").text();
を持つタグを意味します 両方 の Tag
そして Resource
クラス。find() メソッドは、要素のサブツリーを検索するためのものです。
他のヒント
ここに行く(ライブデモの):
$(document).ready(
function (){
alert( $('a.Tag.Resource').html() );
});
あなたの問題は、1つのクラスを望んでいたが、それは2になったので、スペースを使用したことのいずれかです。またはjqueryのセレクタを持つクラスを参照するときことを、あなたはピリオドでそれらの前に付ける必要があります。
いずれの場合においても、上記のコードは役立ちます。あなたは本当にただ1つのクラスを望んでいた場合は、$('a.Tag-Resource')...
するように変更します。
私はこの問題は、あなたの検索式の構文だと思います。
の の更新:実際には、あなたがフィルタをしたい、全く見つける必要はありません。 だけではなく要素自体よりも、A要素の子孫を選択します検索します。
私は、以下の例のラインをテストしてみます。
あなたが望むようにの例からここを、それが見えます。
var text = $('a').filter('.Tag.Resource').text();
var text = "";
$("a").each(function(){
text += $(this).html() + " " + $(this).attr("resource");
});
alert(text);
私はあなたの中にスペースを含むクラス名を持つことができるとは思いません。 あなたは、タグに2クラスの「タグ」と「リソース」を追加しましたし、あなたのfind selectoryはそれを見つけることができません。
クラス名はページ上で繰り返すことができ、スペースは要素に適用される 2 つのクラスを示すことに注意してください。単一の要素がそのクラスを持つことは保証されていないため、.text() は 結合されたテキスト 一致したすべての要素の。
$(".Tag.Resource").text();
さて、あなたはjQueryのを使用する必要はありません...
var text, links = document.links;
for (var i = 0; i < links.length; i++) {
if (links[i].className == 'Tag Resource') {
text = links[i].innerText;
break;
}
}
alert(text);