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

たとえば
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(" "));

A 回答 (1件)

obj.parents()の中のspan要素ってことでしょうか?



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

この回答への補足

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(" "))
にしてみたら、""が帰ってきました。。

補足日時:2011/11/16 12:20
    • good
    • 0

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