jQuery, якщо елемент має ідентифікатор?

Як вибрати елементи, які мають ідентифікатор? Наприклад:

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

Я жодним чином не майстер у jQuery.

32
Дякую всім за допомогу, пропозиції та вдосконалення! :)
додано Автор Aaron Brewer, джерело
Я просто хочу, щоб мати можливість запускати скрипт, якщо в елементі є елементи у батьківському класі, які мають атрибут id.
додано Автор Aaron Brewer, джерело
Чому ти хочеш це зробити? Що ти насправді плануєш зробити?
додано Автор musefan, джерело
Документація jQuery: Вибрати атрибут [name] .
додано Автор Felix Kling, джерело
можливий дубльований jQuery отримує лише всі елементи html з ідентифікаторами
додано Автор MrCode, джерело
Ви хочете "вибрати елементи", щоб зробити щось з ними/чи перевірити, чи є такі елементи?
додано Автор nnnnnn, джерело
Використовуйте .is ('[id]'); , щоб перевірити, чи є певний елемент атрибутом id взагалі. Або якщо вам потрібно відфільтрувати колекцію елементів, скористайтеся параметром .filter ('[id]') , а потім порівняйте властивість .length
додано Автор Ian, джерело

10 Відповіді

Подобається це:

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

Following OP's comment, test it Подобається це:

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

Буде повернути всі якоря теги усередині елементів з батьківським класом, які мають вказаний ідентифікатор атрибута

42
додано
Ви маєте на увазі значення if ($ ('. Parent a [id]')) ?
додано Автор Pierre de LESPINAY, джерело
вибачте, зробив помилку
додано Автор A. Wolff, джерело

Ви можете використовувати функцію .is() у jQuery.

якщо ($ (". parent a") є ("# idSelector")) {

 //робити речі
 
     

}

Це повернеться true, якщо батьківський прив'язок має ідентифікатор #idSelector .

11
додано
Це чудова відповідь, однак, якщо ви хочете перевірити, чи містить елемент певний ідентифікатор! +1
додано Автор The Codesee, джерело
Ні. Це покаже вам, якщо елемент має ідентифікатор конкретного . Питання полягає в тому, чи має він ідентифікатор. Перегляньте відповідь від двох років тому, яка була прийнята.
додано Автор Quentin, джерело

Кількість елементів .parent , які мають атрибут id :

$('.parent a[id]').length
4
додано
Ви маєте рацію, тому довжина $ ('. Parent a [id]') довжина . Відповідь оновлено
додано Автор Pierre de LESPINAY, джерело
Але в питанні "елементи" (множина), а .attr() отримає ідентифікатор лише з першого елемента, що відповідає цьому селектору.
додано Автор nnnnnn, джерело
Пом'якшено, щоб компенсувати невірну вертикаль
додано Автор Esailija, джерело

Простий спосіб:

Фокс, наприклад, це ваш 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)
}
3
додано

Чистий JS підхід:

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

Демонстрація JsFiddle

2
додано

Ви можете зробити

document.getElementById(id) or 
$(id).length > 0
2
додано
Ні, ОП намагається визначити, які елементи мають ідентифікаційний атрибут, визначений будь-яким значенням, а не вибраний певним відомим ідентифікатором.
додано Автор nnnnnn, джерело
ох .... Питання було не зрозуміло ... спасибі ...
додано Автор Ani, джерело

Ви можете використовувати такий код:

   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;
       }
   });

The same question is you can find here: how to check if div has id or not?

2
додано
Але в питанні "елементи" (множина), а .attr() отримає ідентифікатор лише з першого елемента, що відповідає цьому селектору.
додано Автор nnnnnn, джерело
дивіться мої коди та виправте моє розуміння :).
додано Автор brian_wang, джерело

Просто використовуйте:

$(".parent a[id]");
1
додано
смажена вже дала точно таку ж саму відповідь: stackoverflow.com/a/17277848/218196 .
додано Автор Felix Kling, джерело

Ви можете використовувати функцію every() для оцінки всіх тегів і натискання на конкретний елемент, на який ви натиснули. Потім викиньте деяку логіку за допомогою if statement.

Див скрипку тут .

$('a').each(function() {
    $(this).click(function() {
        var el= $(this).attr('id');
        if (el === 'notme') {
           //do nothing or something else
        } else {
            $('p').toggle();
        }
    });
});
0
додано

Я, здавалося, змогли вирішити це з:

if( $('your-selector-here').attr('id') === undefined){
    console.log( 'has no ID' )
}
0
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram