2012-07-18 69 views
1

我的HTML是:如何我在一个元素得到的只是文本值

<div> 
    Some text 
    <span>label text</span> 
</div> 

的Jquery:

?? 

我想输出打印为 -

"Some text" 

当我做$("div").text() ,我得到Some textLabel text
当我做$("div").html(),我得到Some text<span>Label text</span>

+0

不使用( '跨') – 2012-07-18 09:00:24

+0

@Alex - 我不明白。不('span')将检查元素是否不是跨度。这将如何帮助。 – Ashwin 2012-07-18 09:02:08

回答

2

试试这个PLZ:

工作演示http://jsfiddle.net/f8VFf/,你也可以寻找innerHTMloutterHTML

jQuery.fn.justtext = function() { 

    return $(this).clone() 
      .children() 
      .remove() 
      .end() 
      .text(); 

}; 
alert($('div').justtext());​ 
+0

先生!那很完美。谢谢 – Ashwin 2012-07-18 09:04:05

+0

@MotaBOS大声笑howz生活bruv!很高兴它帮助':)' – 2012-07-18 09:04:59

1

在这里你去。 ;)

var tmp = $('div').clone(); 
tmp.children().remove(); 

alert(tmp.text()); 

预览 - http://jsfiddle.net/Z3qaN/

1

这可能工作:

var txt = $('div').contents().filter(function() { 
    return this.nodeType == 3; 
}); 

alert(txt.text());