JQuery:选择闭合标签之间的文本

发布于 2024-11-30 23:22:46 字数 213 浏览 0 评论 0原文

类似的问题已经被问过,但还不够相似!

给定以下结构:

1这是第一点2这是第二点3

如何选择闭合标签之间的文本?即“这是第一点”。

内容是通过 JSON 调用反馈的,因此我无法对他们提供的结构做太多事情。

谢谢!

Similar questions have been asked but not quite similar enough!

Given this structure:

<p class="text">
<b>1</b>this is point one<b>2</b>this is point two<b>3</b>
</p>

How would I select the text between the closed tags? ie "this is point one".

The content is fed back via a JSON call so I can't do much with the structure they're giving me.

Thanks!

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

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

发布评论

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

评论(5

绻影浮沉 2024-12-07 23:22:46

可以将 # 替换为更容易拆分的内容,然后迭代结果

示例 jsfiddle

jQuery:

var points = $('.text').html().replace(/<b>.<\/b>/g, ',').split(','),
    $results = $('#results');
for (var i in points) {
    if ($.trim(points[i]).length > 0) {
        $results.html($results.html() + points[i] + "<br />");
    }
}

can replace your <b>#</b> to something easier to split on then iterate over the results

example jsfiddle

jQuery:

var points = $('.text').html().replace(/<b>.<\/b>/g, ',').split(','),
    $results = $('#results');
for (var i in points) {
    if ($.trim(points[i]).length > 0) {
        $results.html($results.html() + points[i] + "<br />");
    }
}
娜些时光,永不杰束 2024-12-07 23:22:46

如果您需要访问多个文本节点,您可以使用以下方法将其全部提取到一个数组中:

var data = $(".text").contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE && !this.nodeValue.match(/^\s*$/);
}).toArray();

您现在可以使用 data[0].nodeValue 访问“this is point one”和“this is point”二”使用data[1].nodeValue

工作小提琴: http://jsfiddle.net/jHhFS/

注意:附加条件 (!this .nodeValue.match(/^\s*$/)) 过滤掉仅包含空格的文本节点。

If you need access to several of the text nodes, you can extract it all into an array using:

var data = $(".text").contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE && !this.nodeValue.match(/^\s*$/);
}).toArray();

You can now access "this is point one" using data[0].nodeValue and "this is point two" using data[1].nodeValue.

Working fiddle: http://jsfiddle.net/jHhFS/

Note: The additional condition (!this.nodeValue.match(/^\s*$/)) filters out text nodes that contain only whitespaces.

坏尐絯℡ 2024-12-07 23:22:46

您可以使用 .contents() 获取该值。在你的情况下,这会起作用:

alert($(".text").contents().eq(2).text())

you can get to that value using .contents(). In your case this would work:

alert($(".text").contents().eq(2).text())
玩心态 2024-12-07 23:22:46

这是一个潜在的解决方案:

var nodes = $('p.text')[0].childNodes;
var results = [];

for (var i = 0; i < nodes.length; i++) {
    if (nodes[i].nodeType == Node.TEXT_NODE) {
        // support older browsers that do not have textContent
        var text = nodes[i].textContent || nodes[i].innerText;
        if ($.trim(text).length > 0) {   // optional - push non-empty strings
            results.push(text);
        }
    }
}
//console.log(results);

演示:http://jsfiddle.net/mrchief/3L8Ze/1/

Here's a potential solution:

var nodes = $('p.text')[0].childNodes;
var results = [];

for (var i = 0; i < nodes.length; i++) {
    if (nodes[i].nodeType == Node.TEXT_NODE) {
        // support older browsers that do not have textContent
        var text = nodes[i].textContent || nodes[i].innerText;
        if ($.trim(text).length > 0) {   // optional - push non-empty strings
            results.push(text);
        }
    }
}
//console.log(results);

Demo: http://jsfiddle.net/mrchief/3L8Ze/1/

提笔书几行 2024-12-07 23:22:46

你可以尝试 -

console.log($('p').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
}));

这取自 - 如何选择文本节点jQuery?。如链接问题中所述,该解决方案不适用于 IE7,但链接问题中有详细说明的解决方法。

工作演示 - http://jsfiddle.net/E53HU/1/

You could try -

console.log($('p').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
}));

This is taken from - How do I select text nodes with jQuery?. As stated in the linked question, the solution won't work with IE7, but there is a workaround detailed in the linked question.

Working demo - http://jsfiddle.net/E53HU/1/

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