切片后得到元素的内容

时间:2014-04-02 10:55:37

标签: javascript jquery

我有下一个元素:

<div id = "mydiv">
    abc
    <span>123</span>
</div>

document.getElementById('mydiv').textContent返回给我:abc123

我想只获得mydiv('abc')的文字。所以我想知道是否有一个选项可以使用jquery来获取它?也许得到除span元素之外的元素的所有内容..

然后得到他的文字..

P.S。我知道我可以将abc包裹在span中然后得到它,但是我想知道是否还有其他选项可以在不更改元素的情况下进行...

5 个答案:

答案 0 :(得分:1)

DEMO JSFIDDLE

试试这个,

console.log($("#mydiv").clone() .children().remove().end().text());

答案 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());

DEMO

答案 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;