如何在跨度之外获取文本

时间:2014-07-17 17:57:25

标签: jquery

我正在尝试在跨度之外获取文本,但我只能在跨度内获取文本。

<span class="text"> some text </span> text I want

我怎样才能得到“我想要的文字”

我正在使用jQuery,但它只获得“一些文字”

 a = $('.text').contents().filter(function () {
        return this.nodeType == 3;
    }).text();

4 个答案:

答案 0 :(得分:2)

你必须在span的父级上使用它。 http://jsfiddle.net/euvKK/

$(document).ready(function() {
    var a = $(".parent").contents().filter(function() {
        return this.nodeType == 3;
    }).text();
    alert(a);
});

答案 1 :(得分:2)

尝试这个...

<div id="foo"><span>hello</span>i want</div>

$(document).ready(function(){
   $value=$("#foo")
    .clone()    //clone the element
    .children() //select all the children
    .remove()   //remove all the children
    .end()  //again go back to selected element
    .text();
    alert($value);
});

jsfiddle http://jsfiddle.net/qrASy/谢谢...

答案 2 :(得分:0)

这将为您提供不在元素内的所有文本。

http://jsfiddle.net/4QZGz/1/

HTML

<div>
    <span class="text"> some text </span> text I want
     <br/>
    <div id="here"></div>
</div>

JS

a = $('.text');


$('#here').html(textAfter(a));

function textAfter(obj){
    var p=$(obj).parent();

//    alert(/<\/\w+>(\s*[\w+\s+]+)<\w+>/.exec(p.html()));
    return p.html().match(/<\/\w+>(\s*[\w+\s+]+)<\w+>/)[1];

}

答案 3 :(得分:0)

$('.parentClass:not(span)').method

这将获得除了跨度之外的所有内容,这就是您正在寻找的内容。