我正在学习jQuery,但我对这个有点难过。我有以下HTML:
...
<h1 class="myClass">First Part<br />Second Part</h1>
...
我可以使用以下方法将此元素与下载的数据隔离开来:
$(data).find("h1.myClass");
我想要提取的是“第一部分”位。我以为我可以这样做:
$(data).find("h1.myClass:first-child").text();
但是,这会导致空字符串。经过大量的搜索,我仍然不确定我在这里做错了什么。任何帮助将不胜感激。
谢谢!
答案 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);
^将提醒“第一部分”:)