在下面显示的html中,我将这个主div作为cxfeeditem feeditem
和there are many divs
具有相同的类名和结构。我的问题是所有以类名cxfeeditem feeditem
开头的div ,如何为孩子们获取价值,
1.with class name cxfeeditem feeditem
2.class = feeditemtimestamp
3.cxcomments feeditemcomments
4.cxfeeditem feeditem
<div class="cxfeeditem feeditem">
<span class="feeditemtext cxfeeditemtext">
This is my blog
</span>
<a class="feeditemtimestamp">Yesterday 2:13PM</a>
<div class="cxcomments feeditemcomments">
These are my comments
</div>
<div class="cxfeeditem1 feeditem1">
My comments for the comment
</div>
</div>
编辑:输出我想提醒像:
这样的值 This is my blog
Yesterday 2:13PM
These are my comments
My comments for the comment
我尝试了以下操作,但它返回null:
$("div.cxfeeditem.feeditem").each(function() {
alert($(this).children('span.feeditemtext.cxfeeditemtext').html());
alert($(this).children('a.feeditemtimestamp').html());
alert($(this).children('div.cxcomments.feeditemcomments').html());
alert($(this).children('div.cxfeeditem.feeditem').html());
break;
});
答案 0 :(得分:2)
我能看到的最简单的方法是:
$('.cxfeeditem.feeditem').filter(
function(){
return !$(this)
.parents('.cxfeeditem.feeditem')
.length;
}).children().each(
function(){
console.log($(this).text().trim());
});
filter()
用于确保我们不会访问属于这些类的最外层元素的子类的相同.cxfeeditem
和.feeditem
类的元素。这感觉有点混乱,但考虑到你想要的输出,这似乎是最好的方式。
之后,我们只是记录尚未过滤掉的每个(直接)子元素的空格trim()
- ed text()
。
已编辑以回应OP中的问题,评论如下:
如果我想添加子类名称并且我不想考虑所有标记,该怎么办?例如,如果我只想要
的值a.feeditemtimestamp
和span.feeditemtext.cxfeeditemtext
在这种情况下,您可以使用第二次调用filter()
:
$('.cxfeeditem.feeditem').filter(
function() {
return !$(this).parents('.cxfeeditem.feeditem').length;
}).children().filter(
function() {
var that = $(this);
return that.is('span.feeditemtext.cxfeeditemtext, a.feeditemtimestamp');
}).each(
function() {
console.log($(this).text().trim());
});
或者您可以使用find()
(并省略children()
):
$('.cxfeeditem.feeditem').filter(
function() {
return !$(this).parents('.cxfeeditem.feeditem').length;
}).find('> span.feeditemtext.cxfeeditemtext, > a.feeditemtimestamp').each(
function() {
console.log($(this).text().trim());
});
参考文献:
答案 1 :(得分:0)
根据你的功能
alert($(this).children('span.feeditemtext.cxfeeditemtext').html());
这是在第一个div中给出span的文本值,它的类是cxfeeditem feeditem
对于第二个div,span不存在,所以null。