每个()函数内的元素的JQuery .length

时间:2011-02-23 16:37:53

标签: jquery

假设我有以下HTML

<div class="news_item">
    <div class="news_content">Some Content Here...</div>
    <img src="something.jpg" />
</div>

我有以下JQuery代码;这假设计算特定DIV中有多少IMG元素,如果有 no IMG元素,则更改DIV.news_content的CSS。

$('div.news_item').each(function() {
        if ($('img', this).length == 0) {
        $('div.news_content', this).css('background-color', '#cccccc');
    }
});

然而$('img',this).length似乎在每个函数内都不起作用。

3 个答案:

答案 0 :(得分:1)

尝试$(this).find('img').length

答案 1 :(得分:1)

听起来它有效,但是这里有一些替代代码可以过滤掉img孩子的任何div。

$('div.news_item').not(function(index){return $(this).find('img').length > 0;}).each(function(index, elem){
     $(this).css('background-color', '#cccccc');
});

答案 2 :(得分:0)

你的代码很好。确保没有无效的HTML或看起来不正确并在兄弟元素中发现图像。