Я просматриваю веб-страницу, а div, к которому мне нужно получить доступ, имеет id = "#abc".
Я использую cheerio для очистки страницы, поэтому мне нужно сделать это в JQuery, но это не работает:
$('##abc') // undefined
Но он работает с чистым javascript:
getElementById("#abc") // works well
@Shree Потому что id начинается с #?
потому что значение идентификатора - "#abc", а не "abc".
Используйте $('#\\#abc')
просто из любопытства - почему идентификатор имеет префикс # - кажется действительно нелогичным
попробуйте $("#\\#abc"). Оно работает
Замечательно, спасибо всем за ответы, $ ("# \\ # abc") работает!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте использовать этот $('#\\#abc'), экранировав любые специальные символы с помощью идентификатора.
$(function()
{
var a = document.getElementById("#abc")
var b = $('#\\#abc')
$(b).val("test")
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type = "text" id = "#abc" />Теперь вы также можете добавить объяснение Почему, что этот код работает, чтобы отделить его от комментариев, указывающих на то, что это работает.
@LucaKiebel, да я пытался отредактировать ответ и теперь добавил
Вы можете попробовать это для ввода (скрытый, текст ..)
$("[id='#abc']").val()
Как предложил @Scott Marcus
Это для всех элементов, не являющихся полями формы:
$("[id='#abc']").html()
$("[id='#abc']").text()
Элементы div не имеют значения. У них есть .text() или .html() (JQuery).
Да, это зависит от элемента, на который ссылается идентификатор.
вы всегда должны объяснять код - никогда не отправляйте просто ответ
Попробуйте:
$('[id = "#abc"]');
вы всегда должны объяснять код - никогда не публикуйте просто ответ
почему ## когда получить идентификатор?