Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-如何检查id=URL的子项是否存在?_Jquery_Html_Dom - Fatal编程技术网

jQuery-如何检查id=URL的子项是否存在?

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

我(非常确定)必须对我试图创建的页面的一部分使用jQuery,这基本上是我第一天使用jQuery

对于下面的if/else,我首先尝试检查id等于变量
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>