2013-07-30 70 views
0

我正在尝试查找所有具有id和哪些没有id的engagement_app的元素。下面的代码有什么问题?它不能找到/那些没有IDSjquery查找id属性是否存在

jQuery('.engagement_data').each(function() { 

    var engagement_app = $(this).find(".engagement_app").val(); 
    //if ($(this).find(".engagement_app").attr('id')) 
    if ($(this).find(".engagement_app").is('[id]')) 
    { 
     console.log("in if1") 
     console.log($(this).find(".engagement_app").attr('id')); 
    } 

    if ($(this).find(".engagement_app").not('[id]')) 
    { 
     console.log("id not found") 
    } 
}); 
+0

您应该在文档看看学习什么'.not'实际上做:HTTP://api.jquery .COM /不/。另请参阅:http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery?rq=1。 –

回答

2

尝试这一点 - 如果你想"all the elements of engagement_app"

使用!代替not

if (! $(this).find(".engagement_app").is('[id]')){ 
    console.log("id not found") 
}else{ 
    console.log("in if1") 
    console.log($(this).find(".engagement_app").attr('id')); 
} 
0

有和没有ID,你应该使用(chilldren?)类似的东西。

var els_with_id = $(this).find(".engagement_app *[id]") 

var els_without_ids = $(this).find(".engagement_app *").not("[id]") 
0

您可以使用

$('.engagement_app [id]') 

要找到ID的所有元素,并

$('.engagement_app :not([id])') 

找到没有ID的所有元素。

以下是演示如何这可能是工作提琴:

http://jsfiddle.net/qj3V7/

0
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script> 
$(document).ready(function(){ 

$(".engagement_app").each(function(){ 
var id = $(this).attr("id"); 

if(id==undefined) 
{ 
    console.log("id not found") 
} 
else 
{ 
    console.log("in if1"); 
    console.log($(this).attr('id')); 
} 
}); 


}); 
</script> 
</head> 
<body> 
<div class="engagement_data"> 
<div class="engagement_app" id="1">1</div> 
    <div class="engagement_app">2</div> 
    <div class="engagement_app" id="3">3</div> 
    <div class="engagement_app">4</div> 
</div> 

</body> 
</html>