Получение элемента DOM из объекта jQuery в IE7

#javascript #jquery #internet-explorer-7

#javascript #jquery #internet-explorer-7

Вопрос:

Я пытаюсь получить аналог DOM объекта jQuery, чтобы установить onclick, поскольку IE7 не поддерживает .attr(‘onclick’) .

Однако у меня возникли некоторые проблемы:

 var button0 = $('#idElement').next().find('input').get(0);
var originalOnClick = button0.onclick;
var newOnClick = function() {
    return false;
}
button0.onclick = newOnClick;
 

Button0 не определено, и я не уверен, почему. get(0) должен получить элемент dom.

 <select id="idElement">(Bunch of options here)</select>
<div>
        <input type="button"/>
</div>
 

Комментарии:

1. Как выглядит ваш dom? Не могли бы вы также опубликовать соответствующую html-разметку? Как насчет chrome и ff работает этот код, вы не упомянули в своем сообщении. если это не определено, то, конечно, следующий элемент не содержит этого ввода.

2. Я добавил соответствующую разметку.

3. $(‘#idElement’).next().find(‘ввод’) работает в Chrome и Firefox. Он находит входной элемент, который я хочу извлечь. Я не думаю, что .find() работает в Internet Explorer 7

4. Ваша версия jQuery не должна быть 2.0 эта версия не поддерживает устаревшие браузеры IE 6,7,8. Обязательно загрузите jQuery версии 1.0 . Или вы можете использовать jQuery's migrate plugin too. .

5. В настоящее время я использую 1.11.1. То, что опубликовал Coby, работает, хотя .find() ничего не может найти в IE7.

Ответ №1:

 var newOnClick = function(){
    return false;
};

var $input = $('#idElement   div input');

$input[0].setAttribute('onclick','');
$input.on('click', newOnClick);
 

JSFiddle: http://jsfiddle.net/tBV7A /