たとえば、次の HTML があるとします。
<a id="test" href="#">Text of A <span>(span text)</span></a>
その後、jQuery('#test').text()
が返さ'Text of A (span text)'
れます。取得する方法はありますか'Text of A '
(タグ内のテキストであり、<a>
子孫<span>
タグ内ではありません)。
たとえば、次の HTML があるとします。
<a id="test" href="#">Text of A <span>(span text)</span></a>
その後、jQuery('#test').text()
が返さ'Text of A (span text)'
れます。取得する方法はありますか'Text of A '
(タグ内のテキストであり、<a>
子孫<span>
タグ内ではありません)。
ここにあなたの問題を解決する会話へのリンクがあります: select top level nodetext is not supported with jQuery?
ここに抜粋があります:
$("#hello").clone().children().remove().end().text();
簡単なプラグインを作成することでこれを行う再利用可能な方法を次に示します。
プラグイン
(function ($) {
$.fn.directText = function () {
var o = "";
this.each(function () {
var nodes = this.childNodes;
for (var i = 0; i <= nodes.length - 1; i++) {
if (nodes[i].nodeType == 3) o += nodes[i].nodeValue;
}
});
return $.trim(o);
};
})(jQuery);
使用法
$("#myElement").directText();