获取文字直到第一个

时间:2010-12-16 05:34:17

标签: javascript jquery

我正在学习jQuery,但我对这个有点难过。我有以下HTML:

...
<h1 class="myClass">First Part<br />Second Part</h1>
...

我可以使用以下方法将此元素与下载的数据隔离开来:

$(data).find("h1.myClass");

我想要提取的是“第一部分”位。我以为我可以这样做:

$(data).find("h1.myClass:first-child").text();

但是,这会导致空字符串。经过大量的搜索,我仍然不确定我在这里做错了什么。任何帮助将不胜感激。

谢谢!

5 个答案:

答案 0 :(得分:8)

<击> $(".myClass").text().split("<br />")[0];

编辑:

$(".myClass").html().split("<br />")[0];

参考修正评论:@ box9

答案 1 :(得分:5)

使用普通的旧JavaScript和DOM,一旦你拥有了H1 dom对象,你就可以调用myH1.firstChild并将文本节点返回到下一个元素(你可以在其上调用“data”来获取文本字符串)。例如:

<h1 class="myClass">This is<br/>a test</h1>
//...
var hs = document.getElementsByClassName("myClass");
hs[0].firstChild.data; // => "This is"

或者使用惯用的jQuery:

$("h1.myClass").get(0).firstChild.data; // => "This is"

不要忘记jQuery功能强大且经常超级节省时间,但DOM本身也提供了一些很好的功能。

答案 2 :(得分:5)

要获得更多'jQuery-ish':

$("h1.myClass").contents().eq(0).text();

答案 3 :(得分:1)

为什么不使用一些正则表达式呢

var content = $(data).find("h1.myClass:first-child").html();
var filteredContent = /(.*)<br \/>/.exec(content)[0];

答案 4 :(得分:1)

“第一部分”不是孩子,因为它不属于自己的元素。

您可以通过<h1 class="myClass">分割<br />的内容来获取第一部分:

var firstPart = $("h1.myClass").html().split('<br />')[0];

alert(firstPart);

^将提醒“第一部分”:)