jq dom 选择问题

图片描述

RT我有这样一个div,我只想获取到第一个红框的文本.
请问如何操作,
$('.chapter').find('strong').text() 我这样操作把两个红框的文本都得到.我只想要第一个的, 不能操作代码,求助

再PS下,扒的是别人网页的代码.所以代码 我是不能修改的,

阅读 2.8k
5 个回答

想获得哪个,加一对标签打个包就行了。不过需要提醒的是,这种标签嵌套本身不规范,strong建议你用CSS实现,<i>标签如果是图标的话,里边留空,单独用不要嵌套。


补充说没法改 HTML 结构,那只好用原生了~你试试这个:

document.querySelector('.chapter .icon-chapter').nextSibling.nodeValue;

当然也可以用jQ打下辅助:

$('.chapter').find('.icon-chapter').get(0).nextSibling.nodeValue;

用个标签把字包起来,然后获取

<span class="test">第二章 安装Nodejs</span>
$('.test').text();

var obj = $(".chapter").find("strong").clone();
obj.find('.chapter-info').remove();
var title = obj.text();
console.log(title);
网上找到了,分享一下,亲测可行.

获取的方法有很多,不知道楼主是想单独对这块代码使用,还是想处地方复用,如果只是想这里使用的话,代码如下

$('.chapter').find('strong').html().split('</i>')[1].split('<div')[0]

如果要多处地方使用的话,也可以整出一个公用的方法来,前提是要知道要复用的代码的共同点

手机不好敲代码,提供个思路,先取strong标签下的代码字符串,通过正则过滤掉有标签的内容,得到正文内容。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题