Я боролся со странным случаем. 1. Эта же страница открывается и отлаживается в Chrome и Firefox. 2. Код:
$("ul[id^='_'").each(function(){
// some actions which work good in Chrome
});
3. Во время отладки я понял, что проблема в $("ul[id^='_'")
4. Попытка выполнить это в консоли Chrome я получаю:
это нормально, и я ожидаю. Однако тот же код в Firefox 25 возвращает мне следующее:
Это пустой объект, которого явно нет. Итак, какая разница между этим кодом в двух браузерах? Я подозреваю, что проблема может быть в кириллической ценности id-атрибута, но она успешно работает и IE и Chrome, и попадает в Firefox и Mozilla?
Пожалуйста, помогите мне исправить.
Существует хороший ответ о том, что использовать для ID.
Короче говоря, проблема заключается в том, что поле HTML ID может начинаться только с буквы, цифр или специальных символов.
Например, это действительные идентификаторы
hello
hello_1
hello_world_1
dropdown
Это не
1_dropdown
$34_element
это может быть неправильно:
$("ul[id^='_']").each(function(){
console.log(this)
});
//ul [id ^ = '_' ] <----
Альтернативное решение
var $result = $('ul').filter(function(){
return this.id.charAt(0) === '_';
});
console.log($result);