我认为Google Chrome控制台日志最能解释我的问题:
>> $(".single.portfolio")
[<article id="#js-single-item" class="post-883 portfolio type-portfolio status-publish hentry single">…</article>]
>> the_element_id = $(".single.portfolio").attr("id")
"#js-single-item"
>> $(the_element_id)
[]
>> $("#js-single-item");
[]
>> document.getElementById("#js-single-item");
<article id="#js-single-item" class="post-883 portfolio type-portfolio status-publish hentry single">…</article>
奇怪的是getElementById可以工作,但jQuery没有。
我试图通过复制整个HTML并且代码按照预期的方式工作来重现问题,所以没有麻烦。最有可能的是一起冲突。
我正在寻找调试技巧。谢谢!
修改:错字。解决了问题。
答案 0 :(得分:10)
id="#js-single-item"
id
属性不应包含#
符号。当你在jQuery中选择$('#some-id')
时,它实际上是在调用document.getElementById('some-id')
。
你可以这样做:
$('#\\#js-single-item')
另外,不要。
答案 1 :(得分:1)
您在ID的开头有#
。由于#
是jQuery中'id'的选择器,因此它会将其视为id = js-single-item
而不是#js-single-item
的元素