Блокировка прокрутки (по крайней мере, светодиод для него, так или иначе) используется наряду с Caps Lock и светодиод Num Lock для обеспечения кодов ошибки диагностики при поиске и устранении неисправностей аппаратных проблем на ноутбуках Dell. Это довольно полезно при поиске и устранении неисправностей проблем с дисплеем, которые могли бы препятствовать тому, чтобы сообщения диагностики были прочитаны от экрана.
Вам нужно избегать квадратных скобок, чтобы они не учитывались как атрибут селекторы. Попробуйте следующее:
alert($("#something\\["+id+"\\]").parent().parent().attr("id"));
См. Специальные символы в селекторах , особенно второй абзац:
Чтобы использовать любой из метасимволов (например,
! "# $% & '() * + ,. / :; <=> ? @[\] ^ `` {|} ~
) как буквальная часть имени, оно должно быть экранировано двумя обратными косыми чертами:\\
. Например, элемент сid = "foo.bar"
может использовать селектор$ ("# foo \\. Bar")
. Спецификация W3C CSS содержит полный набор правил относительно допустимых селекторов CSS . Также полезна запись в блоге Матиаса Биненса о управляющих последовательностях символов CSS для идентификаторов .
Идентификатор не может включать квадратные скобки. Это запрещено спецификацией .
Некоторые браузеры могут исправлять ошибки и справляться с ними, но вам следует исправить данные, а не пытаться иметь дело с неверными данными.
Квадратные скобки имеют особое значение для селекторов jQuery , в частности фильтров атрибутов.
Просто уберите их, и ваш элемент будет в порядке
$( "#something\\[" + id + "\\]" )
Попробуйте это:
alert($("#something\\["+id+"\\]").parent()[0].parent()[0].attr("id"));
Вы можете избежать их с помощью \\
или сделать что-то вроде этого ...
$(document.getElementById("something[" + id + "]"))