Jquery Доступ к элементу с его id & ldquo; с символом массива в нем & rdquo; [Дубликат]

Типы ссылок по умолчанию равны null, чтобы указать, что они не ссылаются на какой-либо объект. Следовательно, если вы попытаетесь получить доступ к объекту, на который ссылаетесь, а его нет, вы получите исключение NullReferenceException.

Для Ex:

SqlConnection connection = null;
connection.Open();

Когда вы запускаете это кода, вы получите:

System.NullReferenceException: Object reference not set to an instance of an object.

Вы можете избежать этой ошибки, например, следующим образом:

if (connection != null){
    connection.Open();
}

Примечание. Чтобы избежать этой ошибки, вы всегда должны инициализировать свои объекты прежде чем пытаться что-либо сделать с ними.

63
задан Mike Trpcic 6 August 2009 в 15:04
поделиться

7 ответов

Вам нужно избежать квадратных скобок, чтобы они не учитывались как селектор атрибутов. Попробуйте следующее:

alert($("#something\\["+id+"\\]").parent().parent().attr("id"));

См. Специальные символы в селекторах , в частности второй абзац:

Чтобы использовать любой из метасимволов ( такой как !"#$%&'()*+,./:;<=>?@[\]^``{|}~) как буквальная часть имени, он должен быть экранирован двумя обратными косыми чертами: \\. Например, элемент с id="foo.bar" может использовать селектор $("#foo\\.bar"). Спецификация CSS W3C содержит полный набор правил относительно правильных селекторов CSS . Также полезной является запись в блоге Матиаса Биненса в escape-последовательности символов CSS для идентификаторов .

88
ответ дан Rory McCrossan 3 September 2018 в 12:39
поделиться
  • 1
    специальное (мета) описание символа теперь находится во втором абзаце на странице, указанной в сообщении karim 79 – Keith K 11 June 2010 в 14:52
  • 2
    @KKirk - спасибо за это. – karim79 11 June 2010 в 22:42

Вы также можете сделать

$('[id="something['+id+']"]')
8
ответ дан Community 3 September 2018 в 12:39
поделиться

«Любой из метасимволов

!"#$%&'()*+,./:;<=>?@[\]^`{|}~

как буквальная часть имени, он должен быть экранирован с двумя обратными косыми чертами: \\.

Например , элемент с id = "foo.bar", может использовать селектор

$("#foo\\.bar")

"[источник: jquery doc ], а элемент с id =" foo [ bar] "(даже если он недействителен для W3C, но распознан JQuery), можно использовать селектор

$("#foo\\[bar\\]")

(Только один asnwer, как и многие другие, но все вместе:))

3
ответ дан Elvis Ciotti 3 September 2018 в 12:39
поделиться

Вы можете избежать их с помощью \\, или вы можете сделать что-то вроде этого ...

$(document.getElementById("something[" + id + "]"))
3
ответ дан Josh Stodola 3 September 2018 в 12:39
поделиться

Квадратные скобки имеют особое значение для селекторов jQuery , специальные фильтры атрибутов.

Просто выйдите из них, и он найдет ваш элемент в порядке

$( "#something\\[" + id + "\\]" )
9
ответ дан Paolo Bergantino 3 September 2018 в 12:39
поделиться
9
ответ дан Quentin 3 September 2018 в 12:39
поделиться

Попробуйте следующее:

alert($("#something\\["+id+"\\]").parent()[0].parent()[0].attr("id"));
4
ответ дан Tim S. Van Haren 3 September 2018 в 12:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: