使用jQuery从标记中提取文本的某些部分

时间:2012-05-01 08:55:59

标签: jquery

我有以下内容:

<a title="Home" href="#">Home<br>test</a>
<a title="Home" href="#">Home two<br>test</a>
<a title="Home" href="#">Home two three<br>test</a>

我需要的是从地址标签获取文本“Home”和“Home two”和“Home two three”。我忘记了我之间可以有一个br标签。

我需要这样的东西:

var abc = a.html()

但我知道这只给了我一切

2 个答案:

答案 0 :(得分:3)

您可以使用.contents().filter(function() { return this.nodeType == 3; }).first().text()获取第一个文本节点值。这将丢弃之后的任何文本(例如您的br和on)。这是一个例子:http://jsfiddle.net/cHhU5/

答案 1 :(得分:0)

Hiya 简单演示(针对您的具体情况进行了新的更新)http://jsfiddle.net/zrmGm/

http://jsfiddle.net/XswN4/ 演示,如果你有3个单词,它仍然可以获得2个http://jsfiddle.net/XswN4/1/

根据未提及的内容更新了演示 http://jsfiddle.net/zrmGm/(此示例将在<br>代码之前为您提供所有内容!

使用match进一步阅读:http://www.jquery4u.com/syntax/jquery-basic-regex-selector-examples/

<强>码

$.fn.ready(function() {

    $('a').each(function() {

        var str = $(this).html().match(/\w+\s\w+/);

        alert(str);
    });

});​

更新了代码以获取<br>代码

之前的所有内容
$.fn.ready(function() {

    $('a').each(function() {

        var str = $(this).html().split('<br>')[0]

        alert(str);
    });

});​