0

我试图找到所有有 id 和没有 id 的engagement_app 元素。下面的代码有什么问题?它找不到有/没有 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")
   }
});
4

4 回答 4

2

尝试这个 -

使用!而不是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'));
}
于 2013-07-30T09:05:44.793 回答
0

如果你想要"all the elements of engagement_app"(孩子?)有和没有 id,你应该使用类似的东西。

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

var els_without_ids = $(this).find(".engagement_app *").not("[id]")
于 2013-07-30T09:07:53.343 回答
0

您可以使用

$('.engagement_app [id]')

查找具有 ID 的所有元素,以及

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

查找所有没有 ID 的元素。

这是一个演示如何工作的小提琴:

http://jsfiddle.net/qj3V7/

于 2013-07-30T09:16:49.807 回答
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>
于 2013-07-30T09:47:08.010 回答