我有一个大表,我需要将一些文本转换为另一个Unicode实体,但有些单元格包含另一个html元素,例如:
<td>some text <span>another text</span></td>
我想获得some text
只是因为我可以通过以下方式获得第一个孩子span
:
children().eq(0)
我试过
$(this).text() //but gets all text inside the cell
答案 0 :(得分:2)
您可以像some text
一样获得。
this.childNodes[0].nodeValue
示例强>
$('td').click(function () {
alert(this.childNodes[0].nodeValue)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>some text <span>another text</span></td>
</tr>
</table>
&#13;
答案 1 :(得分:2)
在jQuery中,您需要过滤掉其内容以获取textnode文本:
$(this).contents().filter(function(){
return this.nodeType === 3;
}).text(); // >> "some text "
这就是jQuery变得有趣的地方:
$(this).contents().not(':not(:not(*))').text(); // >> "some text "
虽然:
$(this).contents().not('*').text(); // >> "" (empty string!!!)
答案 2 :(得分:1)
使用Jquery你可以克隆元素并移除他的孩子,然后获取文本:
$('td').clone().children().remove().end().text();
希望这有帮助。
alert( $('p').clone().children().remove().end().text() );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>some text <span>another text</span></p>
&#13;