jQuery: получить id элемента

Вопрос

Очень простой вопрос. Предположим, что на странице есть несколько элементов (например DIV-ов или кнопок), у всех элементов общий класс, и у каждого также уникальный идентификатор (id). Обработчик события клика вешается на общий класс, а не на каждый элемент. Необходимо с помощью jQuery получить id элемента, по которому кликнул пользователь.

<div class="square" id="first">
<div class="square" id="second">

Ответ №1

В jQuery нет отдельной функции для получения id элемента, но она там совершенно не нужна, поскольку это можно сделать очень просто и другими путями. Первый из них - использовать функцию attr. Как известно, эта функция получает атрибут элемента, а id это по сути обычный атрибут. Указатель $(this) будет ссылаться на тот элемент, по которому произведен клик:

$(document).ready(function(){
    $('.square').click(function() {
        console.log($(this).attr('id'));
    });
});

Но можно пойти и немного другим путём, по сути выполнить то же самое, только использовать не указатель $(this) объекта jQuery, а другой указатель this, который будет указывать не на объект типа jQuery, а на DOM-аналог этого объекта. Если я Вас запутал, почитайте вопрос об разнице между $(this) и this.

$(document).ready(function(){
    $('.square').click(function() {
        console.log(this.id);
    });
});

А ещё можно это сделать через объект event, в котором также будет хранится ссылка на «кликнутый» элемент:

$(document).ready(function() {
    $(".square").click(function(event) {
        console.log(event.target.id);
    });
});

Но вообще-то надобность получить id элемента на jQuery при обработке события на практике возникает редко, так как можно в этом случае все действия с нужным элементом выполнять через $(this).

15 комментария

  • ozornick:

    Большое спазибо за показательное применение attr)

  • Александр:

    Спасибо, отличное описание! Как раз что искал!

  • Иван:

    Спасибо, за подробное хорошее описание

  • Hooba booba:

    Спасибо большое, то что нужно.

  • Дмитрий:

    В случае с $(this).parent().get(0) используем именно .id, потому что работаем не с $(this), а с его родителем, который, я так понимаю, подобен this (а не $(this)).

    То есть, $(this).parent().get(0).id будет возвращать нам правильный id родительского элемента :)

    //это я для себя по полочкам раскладываю :)

  • Zaynchump:

    «Fake Love» is a song by Canadian recording artist Drake,
    released as a single from his upcoming playlist More Life
    Fake Love watch?v=Ql-A-rwPtpQ
    YouTube: Drake Fake Love
    Help to find Drake Fake Love lyrics or Fake Love lyrics

  • Zaynchump:

    Hush Up The Silence ft. Drake
    Drake One Dance watch?v=uPj0EW7iJkY
    YouTube: Hush Up The Silence

  • GeorgeJes:

    Характеристика Турции Show more!..

  • Devakfef:

    А, который очень даже интересно, благодарность следовать информацию. http://allix.ru

  • JosephRax:

    Заболевание печени, симптомы и так далее Gepatitc.pro это очень важно читать…!..

  • Xrumerrq:

    Прогон вашего сайта лицензионным Xrumer
    Дешевле только даром https://goo.gl/vrx4SW — всего 5 за 1400 открытых ссылок

  • Vipverifs:

    BEST CVV DUMPS SHOP ONLINE
    VERIFIED LEGIT 100% | Sell CC CVV CCV CCN
    – Dumps Track Pin 101 201
    – WU Transfer
    - Bank Login
    - Paypal account
    - Gift Card SHIP,YESCARDS, XBOX LIVE US UK CA AU EU JP CHINA FRANCE GERMANY
    Fresh 100%
    - Guarantee Work
    - Update Everyday
    - Support 24/7 -Shop Order Online
    My Domains:
    terminalcc.com
    thefreshcc.com
    usadumps.com
    vault-dumps.com
    wucshop.com
    r2land.com
    buyst0re.com
    piratescc.com
    cvv-store.com
    dumpspage.com
    blcckchain.biz
    kishan.biz
    dumpsseller.com
    blokchain.biz
    dumpst1t2.com
    cc2cc.biz
    vault-cc.com
    dumpscvv.biz
    TOR Link: http://4c3uka6yb2jaqcra.onion

    Cvv Shop,Buy Cvv,cvv shop online,Buy Cvv Online,Valid Cvv,Shop Cvv,Fresh Cvv,Cvv Store,cvv shops,auto cvv shop,Buy Cvv Shop, Cheap CVV, Fresh CVV, Good CVV, Carding Forums, Carder Forums, Fresh Paypal, Best cvv, shop cvv, cvv online, cvv shop, sell cvv, buy cvv, buy cvv online, Cvv Shop,Buy Cvv,cvv shop online,Buy Cvv Online,Valid Cvv,Shop Cvv,Fresh Cvv,Cvv Store,cvv shops,auto cvv shop,Buy Cvv Shop, Online dumps shop, Buy CC :: Buy Dumps :: Sell CC :: Sell Dumps T1-T2 :: CVV :: Dumps :: PayPal :: SSN :: DOB :: Full CC INFO :: Bank Logins.Fresh Cvv in Cvv Shop. You can buy cvv at cvv shop online make money easily. A Cvv Store have valid cvv , buy cvv2.sell dumps, buy dumps, dumps with pin, buy cvv, buy cvv2, sell dumps, sell track2, buy track2, credit card, buy cards,cheap cvv,buy cvv,sell cvv,fresh cvv,good CC :: CVV :: Dumps :: PayPal :: SSN :: DOB :: Full CC INFO :: Bank Logins :: Tracks :: Carder Tools :: Cvv Shop Site :: CarderShop. Shop Sell Dumps/ Track 1&2 /Seller Cvv/ Buy Cc/ Selling Dumps With Pin Dump/ Dumps … sell fullz dumps with pin High balance and Valid dumps shop, sell dumps,shop good ,selling dumps with pin,seller dumps online,shop dumps, sale dumps , dumps with pin, track 1&2 , dumps , track 1 2 sell CC Dumps Paypal Fullz Banks Verified Shops CC Dumps Paypal Fullz Banks Verified

  • Robertgok:

    Как хорошо, что наткнулся на ваш сайт, очень много информации почерпнул blitz-remont.ru

  • Darrellpex:

    where to buy cialis in toronto canada
    online order for cialis
    buy cialis usa
    cialis canada discount
    cialis china cheap
    cialis soft tablets

    levitra
    order cialis paypal
    how to buy real cialis online
    buy cialis amazon
    cheapest cialis au
    cialis pills sale
    cialis sale philippines
    cialis c5 pill
    buy cialis 20 mg online
    order cialis in uk
    order cialis from canada
    cialis uk buy online
    buy cialis without doctor prescription
    buy cialis toronto
    cheap soft cialis
    how to take cialis pills
    order cialis from india
    buy cialis viagra
    cialis sale manila
    where can i buy cialis online in australia
    cheap cialis levitra

Добавить комментарий


(обязательно)