Альтернативный подход
Я думаю, что вы можете обойтись без возни с какими-либо идентификаторами вообще.Положитесь на структуру документа, чтобы предоставить информацию.Похоже, у вас есть список div, где каждый div можно удалить, нажав на x
, который присутствует внутри div.
Так что, если у вас была такая структура:
<div class="node">
<span class="delete"> x </span>
...
</div>
<div class="node">
<span class="delete"> x </span>
..
</div>
Назначьте событие удаления для всех промежутков, как,
$("span.delete").click(function() {
$(this).parent('.node').remove();
});
Это избавит вас от необходимости полагаться на идентификатор вообще, если вы придерживаетесь базовой структуры размещения промежутка внутриразделить и назначить соответствующие имена классов.Если вы хотите узнать идентификатор родительского элемента, по которому щелкнули, сохраните его как атрибут данных вместо идентификатора.Это делает jQuery и старые браузеры счастливыми.Например,
<div class="node" data-id="*xxx.">
...
</div>
, который можно получить из обработчика щелчков, как:
$("span.delete").click(function() {
var node = $(this).parent('.node');
var id = node.attr('data-id'); // do something with it
});
Старый подход
Запрос с использованием собственного метода getElementById
, чтобы убедиться, что элемент выбран, если пользовательский агент считает это действительным идентификатором.jQuery выполнит некоторую дополнительную обработку переданного идентификатора, так что лучше сделать запрос самостоятельно:
$(document.getElementById("*xxx.")).remove();
$(document.getElementById(".xxx*")).remove();
или экранировать символы *
и .
с помощью \\
.Вот решение jQuery-esque
$("#\\*xxx\\.").remove();
$("#\\.xxx\\*").remove();
Работает на всех моих браузерах.Проводите ли IE тесты самостоятельно :) См. Этот пример .
Обратите внимание, что ограничения для того, что составляет действительную строку идентификатора в соответствии с HTML5:
- Должно бытьуникальный
- должен содержать хотя бы один символ
- не должен содержать пробелов
Цитирование из spec :
Атрибут id указывает уникальный идентификатор (ID) своего элемента.Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента, а должно содержать хотя бы один символ .Значение не должно содержать пробелов .
Если значение не является пустой строкой, пользовательские агенты должны связать элемент с данным значением (точно, включая любые пробелы) дляв целях сопоставления идентификаторов в домашнем поддереве элемента (например, для селекторов в CSS или для метода getElementById () в DOM).