51

我将如何选择具有任何 ID 的元素?例如:

if ($(".parent a").hasId()) {
    /* then do something here */
}

我绝不是 jQuery 的大师。

4

11 回答 11

61

像这样:

var $aWithId = $('.parent a[id]');

按照OP的评论,像这样测试它:

if($aWithId.length) //or without using variable: if ($('.parent a[id]').length)

将返回具有指定属性 ID 的类父元素内的所有锚标记

于 2013-06-24T14:23:38.937 回答
42

您可以使用 jQuery 的 .is() 函数。

if ( $(".parent a").is("#idSelector") ) {

//Do stuff

}

如果父锚具有#idSelector id ,它将返回true 。

于 2015-05-26T13:09:19.650 回答
7

你可以做

document.getElementById(id) or 
$(id).length > 0
于 2013-06-24T14:23:58.600 回答
5

您可以使用以下代码:

   if($(".parent a").attr('id')){

      //do something
   }


   $(".parent a").each(function(i,e){
       if($(e).attr('id')){
          //do something and check
          //if you want to break the each
          //return false;
       }
   });

你可以在这里找到同样的问题:如何检查 div 是否有 id?

于 2013-06-24T14:26:15.553 回答
5

.parent a具有id属性的元素数量:

$('.parent a[id]').length
于 2013-06-24T14:23:26.113 回答
5

简单的方法:

Fox 示例这是您的 html,

<div class='classname' id='your_id_name'>
</div>

jQuery代码:

if($('.classname').prop('id')=='your_id_name')
{
    //works your_id_name exist (true part)
}
else
{ 
    //works your_id_name not exist (false part)
}
于 2016-07-29T11:34:22.927 回答
2

纯js方法:

var elem = document.getElementsByClassName('parent');
alert(elem[0].hasAttribute('id'));

JsFiddle 演示

于 2015-07-17T08:50:06.983 回答
2

我似乎已经能够解决它:

if( $('your-selector-here').attr('id') === undefined){
    console.log( 'has no ID' )
}
于 2018-08-27T16:49:30.610 回答
1

只需使用:

$(".parent a[id]");
于 2013-06-24T14:28:33.423 回答
0

你可以这样做:

if ($(".parent a[Id]").length > 0) {

    /* then do something here */

}
于 2019-04-12T20:28:43.120 回答
0

您可以使用 each() 函数来评估所有标签并将单击绑定到您单击的特定元素。然后用 if 语句抛出一些逻辑。

在这里看小提琴

$('a').each(function() {
    $(this).click(function() {
        var el= $(this).attr('id');
        if (el === 'notme') {
            // do nothing or something else
        } else {
            $('p').toggle();
        }
    });
});
于 2016-08-05T16:44:40.767 回答