1

重複の可能性:
子孫を除く要素内のテキストの取得

使用しようとして:notいます.not()が、まだ機能しません。結果を「月曜日」だけにしたい。

マークアップの例:

 <td id="day_id">
  Monday
   <div class='spec_class'>
    <span>One</span>
    <span>Two</span>
   </div>
</td>
4

2 に答える 2

3

jQuery は実際にはテキスト ノードを「実行」しないため、生の DOM メソッドを使用したほうがよい数少ない場所の 1 つです。

var text = "",
    node;
for (node = $("#day_id")[0].firstChild; node; node = node.nextSibling) {
    if (node.nodeType === 3) { // 3 = text node
        text += node.nodeValue;
    }
}
console.log("[" + text + "]"); // "[ Monday ]"

実例| ソース

テキスト「Monday」の前後に空白を含むテキスト ノードがあるため、前後の空白に注意してください。あなた$.trim()はそれを取り除くために使用することができます.

もっと読む:

于 2012-05-12T11:58:44.980 に答える
3

要素の textNodes を見る必要があります

var td = jQuery("#day_id");
var textNodes = td.contents().filter(function() {
        return this.nodeType == 3;
    });

console.log(textNodes.text());

JSFiddle

于 2012-05-12T12:11:35.163 に答える