我突然发现在使用Mozilla / jQuery v1.8.2时,我不需要使用引号和#符号的id。例如,$(bt2)与$(“#bt2”)的工作方式相同,请参阅下面的代码。
此选择器是否始终有效,使用这种较短的选择形式是否有任何潜在的缺点?
<html>
<head>
<title>append</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready (function(){
$(bt2).click(function(){
$(i1).append("<li>a4</li>", "<li>a5</li>");
});
});
</script>
</head>
<body>
<button id="Button1">Append List</button>
<ul id="i1">
<li>a1</li>
</ul>
</body>
</html>
答案 0 :(得分:1)
某些浏览器支持直接访问没有id的html元素,甚至不需要jquery选择器或document.getElementById来访问它们。 In the jquery selector the id you are passing is not taken as Id but as object (html element)
因为如果它是id,Button1.id会给你id,那么它不应该给你id。在这里,我没有使用任何选择器,甚至没有getElementById Live Demo 。
<强> HTML 强>
<button id="Button1">Append List</button>
Javascript
alert( Button1.id); //Without any jquery selector or getElementById
在下面给出的带有Id Button1的按钮上绑定事件的代码中,Button1不被视为id而是对象,jquery将javascript可访问的dom对象转换为jquery对象和绑定点击事件
$(Button1).click(function(){
});
答案 1 :(得分:0)
你可以这样做,但要注意这可能不适用于其他浏览器。相反,您需要使用
$("#id")
答案 2 :(得分:0)
这是一个你不应该依赖的假设,因为每个浏览器都在使用它。
你最好完全避免这种情况,因为它对其他开发人员来说甚至不利于你的代码。你应该总是尝试推理和使用最好的语义,不仅仅是你自己,还有它的记录方式。
在jQuery中,你有一整页关于selectors。
请使用此类说明。
答案 3 :(得分:0)
浏览器缓存具有id的元素并将其存储在文档的HTMLCollection中。 要查看这个以chrome为开发人员工具,请在页面加载时在javascript的开头添加断点。在“本地”部分下的右窗格下查看。在这里展开:文档和所有:HTMLAllCollection []你可以看到元素和下面的列表,其中包含所有具有id的元素。 但是jQuery文档https://api.jquery.com/id-selector/没有提到这一点,因此它不是正确的语法。 另外,为了便于阅读和维护,最好坚持使用$('#id')。