我有下一个元素:
<div id = "mydiv">
abc
<span>123</span>
</div>
document.getElementById('mydiv').textContent
返回给我:abc123
我想只获得mydiv
('abc')的文字。所以我想知道是否有一个选项可以使用jquery来获取它?也许得到除span元素之外的元素的所有内容..
然后得到他的文字..
P.S。我知道我可以将abc
包裹在span中然后得到它,但是我想知道是否还有其他选项可以在不更改元素的情况下进行...
答案 0 :(得分:1)
答案 1 :(得分:1)
你必须按ID选择你的DIV,然后通过它的&#34; childrens&#34;属性并检查其nodeType(textNodes有3);
var div = document.getElementById("mydiv");
var result = "";
for(var i = 0; i < div.length; i++){
var node = div[i];
if( node.nodeType === 3 ){
result += node.data;
}
}
console.log(result);
答案 2 :(得分:0)
由于您已经包含了jQuery,因此可以执行此操作
var p = $('#mydiv').clone();
p.find('span').remove();
console.log(p.text());
答案 3 :(得分:0)
使用jQuery:
$(document).ready(function() {
alert($('#mydiv span').text());
});
答案 4 :(得分:0)
如果你希望你的div中有更多的html元素,那么用户正则表达式可以在从div获取整个html内容后提取纯文本。
var re = /<.+>/;
var str = "abc<span>123</span>";
var newstr = str.replace(re, "");
应该给出&#34; abc&#34;