Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > jQuery получить элемент


Автор: SneG0K 15.1.2010, 17:51
Код

<div id="criterions"></div>

Код

function onSuccess(data) {
    var select = document.createElement('select');
    select.id = 'criteration';
    for (var i=0; i < data.length; i++) {
        var option = document.createElement("option");
        option.id = i;
        option.appendChild(document.createTextNode(data[i].name));
        select.appendChild(option);
    }
    document.getElementById('criterions').appendChild(select);
}



Так, на сколько видно из этого всего овнеца я создаю динамически select. Как мне потом обработать клик по элементу select'a? И получить еще id этого элемента?
Код

$('#criterions select').click(function(){
    alert($(this).attr('id'));
});

Автор: check 15.1.2010, 18:23
Так получится?
Код

for (var i=0; i < data.length; i++) {
    var option = document.createElement("option");
    option.id = i;
    option.appendChild(document.createTextNode(data[i].name));
    select.appendChild(option);
    $(option).click(function () { 
      //код обрабочика 
    });
}


А почему не используете jQuery и для генерации селекта?

Автор: SneG0K 15.1.2010, 18:44
Цитата(check @  15.1.2010,  17:23 Найти цитируемый пост)
А почему не используете jQuery и для генерации селекта? 

Мозгов не хватает. Покажете как, буду использовать)

Автор: check 15.1.2010, 19:05
Но правильнее будет так:
Код

    var select = document.createElement('select');
    select.id = 'criteration';
    for (var i=0; i < data.length; i++) {
        var option = document.createElement("option");
        option.id = i;
        option.appendChild(document.createTextNode(data[i]));
        select.appendChild(option);
        }
    document.getElementById('criterions').appendChild(select);
    $(select).bind('change', function () { 
       //код обработчика
    });


Добавлено через 2 минуты и 24 секунды
Просто сказали "клик",  я click и сделал)))   Клик кстати тоже работает, но только не в IE.

Автор: 12345c 15.1.2010, 19:20
id на option может быть не кроссбраузерным. Обычно берут по клику на селекте this.selectedIndex . А потом this.options[this.selectedIndex] для добычи атрибутов option.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)