точка jQuery в селекторе ID? [дубликат]




Возможные Дубликаты:
Как выбрать html-узлы по идентификатору с помощью jquery, когда идентификатор содержит точку?






у меня есть сайт, который содержит элементы, похожие на этот:



<p id="root.SomeCoolThing">Some Cool Thing</p>


Я не могу выбрать абзац с jQuery, как $('#root.SomeCoolThing') потому что jQuery думает, SomeCoolThing - это класс элемента с id="root".



как я могу выбрать этот элемент с помощью jQuery? Я хотел бы избежать конструкция такая:



$(document.getElementById('root.SomeCoolThing'))
564   6  

6 ответов:

используйте правила экранирования из jQuery селекторы API следующим образом:

$('#root\.SomeCoolThing') 

С docs:

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

использование attr работает:

$('p[id="root.SomeCoolThing"]')

вам нужно избежать специальных символов:

$('#root\.SomeCoolThing')

docs:

Если вы хотите использовать любой из мета-символов ( например,!"#$%&'()*+,./:;?@[]^`{|}~) как литеральная часть имени, вы должны экранировать символ с двумя обратными косыми чертами: \\. Например, если у вас есть элемент id= " foo.бар", вы можете использовать селектор $("#foo\\.бар.)"

вы можете избежать периода, используя что-то вроде этого

$("#root\.SomeCoolThing")

как я могу получить jQuery для выбора элементов . (точка) в их ID? http://groups.google.com/group/jquery-en/browse_thread/thread/ba072168939b245a?pli=1

стрельба от бедра, но если вы не можете изменить идентификатор элемента, попробуйте использовать этот селектор:

$("p[id=root.SomeCoolThing]")

использовать две обратные косые черты перед каждым специальным символом

  $('#root\.SomeCoolThing')

Comments

    Ничего не найдено.