jQuery-如何检查id=URL的子项是否存在?
我(非常确定)必须对我试图创建的页面的一部分使用jQuery,这基本上是我第一天使用jQuery 对于下面的if/else,我首先尝试检查id等于变量jQuery-如何检查id=URL的子项是否存在?,jquery,html,dom,Jquery,Html,Dom,我(非常确定)必须对我试图创建的页面的一部分使用jQuery,这基本上是我第一天使用jQuery 对于下面的if/else,我首先尝试检查id等于变量url的是否存在。如果存在,它会将文本写入div。如果元素不存在,则else将创建一个具有id属性的新div,以及包含相同响应的文本,并将其附加到 点击链接后 <a href="http://foo.com" onclick="Function('url')">Foo</a><div id="http://foo.c
url
的
是否存在。如果存在,它会将文本写入div。如果元素不存在,则else
将创建一个具有id
属性的新div,以及包含相同响应的文本,并将其附加到
点击链接后
<a href="http://foo.com" onclick="Function('url')">Foo</a><div id="http://foo.com">xhr.responseText</div>
xhr.responseText
我在控制台中得到的错误是
错误:语法错误,无法识别的表达式:div#http%3A%2F%2Fwww.foo.com
因为它说这是一个语法错误,我知道我一定是使用了.length错误,但是
id
的选择器是#
,所以我不知道错误在哪里。我已经在SO和for jquery语法中做了大量的搜索,以检查是否存在子级,并且我尝试使用一些逻辑运算符,但在if语句中总是出现相同的错误。我还尝试使用encodeURIComponent(url),以防它不喜欢url中的某些字符,但这也无法修复它。你的问题让我困惑,但如果你想查看页面上是否存在id,请尝试此方法
如果($('#youId').length){//object exists}
您不能将URL用作HTML id,因为它包含无效字符,我想对URL进行编码无关紧要?您可以用相反的方法。$().closest()
方法将尝试将选择器与节点的祖先匹配。因此,您可以检查子项的id是否存在,以及它的一个祖先是否与您想要的父项匹配。没有编码不能解决此问题,因为百分号仍然无效。此外,您可能不希望ID中包含句点,因为它们可能会混淆jQuery。您应该使用数据-
-属性。使用数据url=“…”
属性将允许您使用$(“div[data url]”)查找它们。如果你坚持把URL作为一个属性,这是最干净的方法。是的,这正是我要检查的。如果我读对了,你只是说去掉我在div#youId中的“div”。如果你的id属于一个div,那么你的id同样有效,但更有可能是你的id包含非法字符,是的,dave up top为我证实了这一点:)谢谢你的建议。
<a href="http://foo.com" onclick="Function('url')">Foo</a>
<a href="http://foo.com" onclick="Function('url')">Foo</a><div id="http://foo.com">xhr.responseText</div>