• ベストアンサー

jQuery タグで囲まれたテキストを取り出す方法

たとえば this.innerHTML の中身が "<span>xxx</span>yyy" の場合、 xxxだけを取り出す場合はどうすればいいですか? たとえば、 this.find("span").innerText jQuery("span", this).get(0).innerText とかかなり色々なコードを試したんですが無理でした。。 詳しい方、教えてください。。 全体のコード obj.parents().map(function(){return this.innerHTML;}).get().join(" "));

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

obj.parents()の中のspan要素ってことでしょうか? 一番外側のparentだけで充分とは思いますが、  obj.parents().find("span").map(~~~ で、対象がspanに絞られますけれど、そういうことではないのかしらん。

peekpoke
質問者

補足

fujilinさんありがとうございます。 改て、もうすこし具体的に質問の内容を書き直しました。。 わかりにくかったかもしれません。すいませんです。。 <ul> <li><span>xxx</span> <li><a>aaa</a></li> </li> </ul> <ul> <li><span>yyy</span> <li><a>bbb</a></li> <li><span>zzz</span> <li><a>ccc</a></li> </li> </li> </ul> ツリー構造になっていて、すべてのノード名は処理しやすいように <span>で囲ってあります。 でそれぞれのリーフに対して親を辿りながらそのノード名をくっつけていく処理を作っていました。 <script> jQuery("li a", document.body).each(function(){ var obj = jQuery(this); obj.attr('href',"http://abc/?get="+ obj.parents("li a").map(function(){return this.innerText;}).get().join(" ")) // <- ここの記述に関しての質問でした }) </script> 上記のコードを実行すると各親のすべての文字列がくっついてくるため <span>だけをくっつけたいというのが質問でした。。 で、理想的には以下のような感じにすればspanのテキストだけくっつけられるのかな? obj.parents("li a").map(function(){ return this.find("span").innerText;}).get().join(" ")) と思ったのですがこれもエラーでした。。 fujillinさんのおっしゃいってとおりに、 obj.parents("span").map(funtion(){return this.innerText;}).get().join(" ")) にしてみたら、""が帰ってきました。。

関連するQ&A