質問

初めて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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top