在jquery中选择DOM时遇到问题
Having issue with DOM selection in jquery
<div class="wrapper">
<p class="text"></p>
</div>
<div class="wrapper">
<p class="text"></p>
<img></img>
</div>
<div class="wrapper">
<p class="text"></p>
<div class="vid"></div>
</div>
假设上面是用户帖子的列表,我想确定他们的帖子类型。要选择图像或视频类型很容易,例如视频,只需选择 $('.wrapper .vid'(。
但是当我想选择纯文本类型的帖子时有一个问题,因为class text
也出现在帖子的 vid 和图像类型中。
看起来你想要wrapper
元素,这些元素不会vid
或img
$('.wrapper').not(':has(img, .vid)')
如果你想要其中的text
元素
$('.wrapper').not(':has(img, .vid)').find('.text')
您可以使用
filter
来获取三种不同类型的帖子。像这样:
var $textPosts = $('.wrapper').filter(function() {
return $(this).find('img, .vid').length == 0;
});
var $imgPosts = $('.wrapper').filter(function() {
return $(this).find('img').length > 0;
});
var $vidPosts = $('.wrapper').filter(function() {
return $(this).find('.vid').length > 0;
});
另请注意,img
HTML 标记是自闭合的,例如:
<img src="foo.jpg" title="Foo" />
如果我做对了,你想用类文本<p>
获得所有测试,那么你可以做这样的事情
$('.wrapper > .text').html()
上面的代码将只给你那些带有类"text"的元素的内容,这些元素直接在类"包装器"下
您可以使用
.filter()
过滤掉具有类text
且没有同级的元素:
var text = $('.text').filter(function() {
return $(this).siblings('*').length == 0
}).text();
小提琴演示
您可以使用
$('.wrapper p.text').text()
小提琴演示
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- 将子文档推送到父数组时遇到问题
- JQuery FullCalendar在从ajax成功调用rerenderEvents时遇到问题
- 在将javascript附加到我的html中时遇到问题
- 为什么我在以编程方式打开窗口时遇到问题
- 在将缩略图链接到模态时遇到问题
- 使用 ng 模型获取数据时遇到问题
- 是否有其他人在设计Twitter Typeahead时遇到问题'的搜索栏
- 使用jquery进行整数比较时遇到问题
- 使用PhantomJS下载动态web内容时遇到问题
- 设置RequireJS时遇到问题
- 让Javascript在SharePoint 2010上运行时遇到问题
- I'我在react.js中编写for循环时遇到问题
- 通过jQuery获取上传的文件名时遇到问题
- 我在启动我的节点时遇到问题.js IRC 机器人
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- 从谷歌地图自定义控件打开离子模态时遇到问题
- 在使用 YAML 和 Google App Engine 时遇到问题
- 在 Chrome 扩展程序中将鼠标悬停在广告上使用时遇到问题