我(我很确定)必须使用jQuery作为我正在尝试创建的页面的一部分,这基本上是我第一天做jQuery。
对于以下if / else,我首先尝试检查id等于变量<div>
的{{1}}是否存在。如果存在,它会将文本写入div。如果该元素不存在,url
将创建一个包含else
属性的新div和包含相同响应的文本,并将其附加到与其关联的id
标记。< / p>
<a href>
如果我让这个声音混乱,这里可以直观地展示我想要在HTML DOM中发生的事情。
在
Function() {
...
...
...
if (xhr.readyState == 4 && xhr.status == 200) {
if ($("div#"+url+"").length) {
document.getElementById(url).innerHTML = xhr.responseText;
}
else {
$("a[href='" + link + "']").append(
$("<div></div>", {
"id": url,
"text": xhr.responseText
}
)
);
}
}
...
...
}
点击链接后。
<a href="http://foo.com" onclick="Function('url')">Foo</a>
我在控制台中遇到的错误是
错误:语法错误,无法识别的表达式:div#http%3A%2F%2Fwww.foo.com
因为它说它是语法错误,我知道我必须使用.length错误,但<a href="http://foo.com" onclick="Function('url')">Foo</a><div id="http://foo.com">xhr.responseText</div>
的选择器是id
所以我不明白错误在哪里。我已经在SO和http://api.jquery.com/length/上进行了一系列侦察,以获取jquery语法,用于检查子进程是否存在,并且我尝试使用一些逻辑运算符,但在if语句中总是出现相同的错误。我也尝试使用encodeURIComponent(url),以防它不喜欢URL中的某些字符,但也没有修复它。
答案 0 :(得分:2)
你的问题让我感到困惑,但如果你想查看页面上是否存在id,请试试这个
if($('#youId').length){//the object exists}