Мы не можем получить доступ к элементу div с идентификатором «test: abc» в коде JS, используя jQuery.
<div id="test:abc">
$('#test:abc')
Работает нормально без двоеточия. У нас нет контроля над генерацией идентификатора, так как он автоматически генерируется в подформах Тринидада, потому что он прикрепляет идентификатор под формы с :
каждым элементом внутри него.
Ответы:
Вы должны избежать двоеточия, используя две косые черты:
источник
Коротко
$(document.getElementById("test:abc"))
это то, что вы должны использовать.Пояснение : Помимо увеличения скорости (см. Ниже), с ним легче работать.
Пример: скажем, у вас есть функция
Скорость / Сроки
взгляните на этот jsbin, который проверяет и сравнивает скорость выбора методов идентификаторов с двоеточиями
вам нужно открыть консоль firebug, чтобы получить результаты.
Я протестировал это с Firefox 10 и JQuery 1.7.2
в основном я выбрал 10'000 раз деления с двоеточием в идентификаторе - разными способами для достижения этого. Затем я сравнил результаты с выбором идентификатора без двоеточия, результаты довольно удивительны.
оставленное время в мс
особенно
немного удивительно
источник
$("#annyoing\\:colon")
, 29$("[id='annyoing:colon']")
, 5$(document.getElementById("annyoing:colon"))
, 8$("#nocolon")
, 31$("[id='nocolon']")
$("#annoying\\:colon")
или$(document.getElementById("annoying:colon"))
?Очевидно, что он срабатывает на двоеточие, потому что jQuery пытается интерпретировать его как селектор. Попробуйте использовать селектор атрибута id.
источник
Я бы просто использовал
document.getElementById
и передал результат вjQuery()
функцию.источник
использовать две обратные косые черты
\\
DEMO
как написано здесь
Ссылка
источник
Ссылаясь на ответ Тоскана, я обновил его код, чтобы он стал немного читабельнее, а затем вывел его на страницу.
Вот ссылка на jbin: http://jsbin.com/ujajuf/14/edit .
Кроме того, я запустил его с большим количеством итераций
Даже больше:
источник
попробуйте использовать
$('#test\\:abc')
источник
Этот синтаксис
$('[id="test:abc"]')
работал для меня. Я используюNetbeans 6.5.1
& он генерирует компоненты с,id
который содержит: (colon)
. Я попробовал\\
& the,\3A
но ни один из них не работал.источник
Использование
$('[id=id:with:colon]')
.источник