使用 JQuery 提取元素中的文本

发布于 2024-07-24 22:32:08 字数 220 浏览 5 评论 0原文

我想用 JQuery 提取元素内的文本,

<div id="bla">
    <span><strong>bla bla bla</strong>I want this text</span>
</div>

我只想要文本“我想要这个文本”,而不需要强标签。 我怎样才能做到这一点?

I want to extract the Text inside a Element with JQuery

<div id="bla">
    <span><strong>bla bla bla</strong>I want this text</span>
</div>

I want only the text "I want this text" without the strong-tag. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

木槿暧夏七纪年 2024-07-31 22:32:08

试试这个...

<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
    $("#bla span").contents().each(function(i) {
        if(this.nodeName == "#text") alert(this.textContent);
    });
});

//]]>
</script>

这不需要从上下文中删除任何其他节点,并且只会在每次迭代时为您提供文本节点。

Try this...

<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
    $("#bla span").contents().each(function(i) {
        if(this.nodeName == "#text") alert(this.textContent);
    });
});

//]]>
</script>

This doesn't need to remove any other nodes from context, and will just give you the text node(s) on each iteration.

故人如初 2024-07-31 22:32:08

karim79 方法的变体:

$("span").clone().find("strong").remove().end().text();

或者如果您只想要根文本而不知道其中有其他标签:

$("span").clone().children().remove().end().text();

仍然有点长,但我认为这与您所希望的一样短。

Variation on karim79's method:

$("span").clone().find("strong").remove().end().text();

or if you just want the root text without knowing what other tags are in it:

$("span").clone().children().remove().end().text();

still a little long, but I think this about as short as you can hope for.

我不咬妳我踢妳 2024-07-31 22:32:08

这样就可以了(已测试):

    var clone = $("#bla > span").clone();
    clone.find('strong').remove();
    alert(clone.text());

This does it (tested):

    var clone = $("#bla > span").clone();
    clone.find('strong').remove();
    alert(clone.text());
山川志 2024-07-31 22:32:08
var textFromSpanWithoutStrongTag = $('div#bla > span').text();

更新:

var textFromSpanWithoutTextFromStrongTag =
    $('div#bla > span').text().replace($('div#bla > span > strong').text(), '');

更新:

var text = '';
$("div#bla > span").contents().each(function () {
    if(this.nodeType == 3) text = text + this.nodeValue; });

在 FF3、IE8、O10b 上测试:

<div id="bla">
    <span>
        <strong>bla bla bla</strong>
        I want this
        <strong>bla bla</strong>
        text
        <span>bla bla bla</span>
    </span>
</div>
var textFromSpanWithoutStrongTag = $('div#bla > span').text();

UPDATED:

var textFromSpanWithoutTextFromStrongTag =
    $('div#bla > span').text().replace($('div#bla > span > strong').text(), '');

UPDATED:

var text = '';
$("div#bla > span").contents().each(function () {
    if(this.nodeType == 3) text = text + this.nodeValue; });

Tested in FF3, IE8, O10b on:

<div id="bla">
    <span>
        <strong>bla bla bla</strong>
        I want this
        <strong>bla bla</strong>
        text
        <span>bla bla bla</span>
    </span>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文