Кто-нибудь знает, как выбрать элемент в DOM по идентификатору с помощью jQuery, когда в этом идентификаторе есть пробел?
Например, идентификатор моего предмета будет
<div id="content Module">Stuff</div>
Как мне выбрать это с помощью jQuery?
Если я просто сделаю
$("#content Module").whatever()
jQuery попытается найти элемент как с идентификатором содержимого, так и с идентификатором модуля, а это не то, что я ищу.
Я должен добавить, что я работаю со старой базой кода, где эти два идентификатора слов широко используются, поэтому повторение и изменение всех идентификаторов было бы плохим.
Ответы:
Используйте селектор атрибутов.
Или, лучше, укажите еще и тег:
Обратите внимание, что в отличие от $ ('# id'), это вернет несколько элементов, если на вашей странице есть несколько элементов с одинаковым идентификатором.
источник
Не используйте пробелы, причина этого проста, символ пробела не является допустимым для атрибута ID.
Но если вас не волнуют стандарты, попробуйте
$("[id='content Module']")
Подобная ветка> Какие допустимые значения для атрибута id в HTML?
Изменить: как идентификатор отличается между HTML 4.01 и HTML5
Ссылка: http://mathiasbynens.be/notes/html5-id-class
источник
На всякий случай, если кому-то интересно, я обнаружил, что побег из космоса сработает. Это особенно полезно, когда у вас нет контроля над целевой DOM (например, из пользовательского скрипта):
Обратите внимание на двойную обратную косую черту, которая обязательна.
источник
Предложенный Крисом метод, вероятно, можно адаптировать для работы с функциями jQuery.
источник
Идея попробовать:
Точка с запятой может вызвать ошибку javascript. Также рекомендую изменить ID, чтобы в нем не было пробелов.
Также попробуйте
document.getElementByID("content Module")
источник
$(document.getElementByID("content Module"))
дал бы вам объект jquery?Это сработало для меня.
источник
Хотя технически недопустимо иметь пробел в значении атрибута ID в HTML , на самом деле вы можете выбрать его с помощью jQuery.
См. Http://mothereffingcssescapes.com/#content%20module :
jQuery использует синтаксис, подобный Selectors API, поэтому вы можете использовать
$('#content\\ module');
для выбора элемента с помощьюid="content module"
.Чтобы настроить таргетинг на элемент в CSS, вы можете избежать его следующим образом:
источник
это может сработать, если вы хотите, чтобы элемент имел точное значение идентификатора
но если вы хотите проверить, есть ли у элемента только один из них (как и класс) с другими идентификаторами или без них
это выберет элемент, если он имеет
id="content"
илиid="content Module"
илиid="content Module other_ids"
источник
В своем случае я обнаружил, что escape не работает, потому что он заменяет пробелы на% 20. Вместо этого я использовал replace, например, чтобы заменить h1 страницы на текст элемента списка. Если в меню есть:
источник
У меня были проблемы с идентификаторами элементов, содержащими запятые и / или пробелы в jQuery, поэтому я сделал это, и это сработало как шарм:
var ele = $(document.getElementById('last, first'));
Это имеет пробелы и не работает:
var ele = $('#last, first');
Это запятая и не работает:
var ele = $('#last,first');
источник
Экранирование любого разного символа в селекторе (вместе с пробелами) .
источник