1

我突然发现,在使用 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>
4

4 回答 4

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)因为 Button1.id 给你 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(){
});
于 2012-11-18T11:36:25.423 回答
1

这是一个你不应该依赖的假设,因为每个浏览器都在使用它。

您最好完全避免这种情况,因为其他开发人员使用您的代码甚至都不好。您应该始终尝试推理和使用最好的语义,不仅是关于您自己,而且是记录在案的方式。

在 jQuery 中,您有一整页仅与选择器有关。

请使用这样的描述。

于 2012-11-18T11:13:45.977 回答
0

您可以这样做,但请注意,这可能不适用于其他浏览器。相反,您将需要使用

$("#id")
于 2012-11-18T11:09:05.363 回答
0

浏览器缓存具有 id 的元素并将其存储在文档的 HTMLCollection 中。要在 chrome 中查看开发人员工具,请在加载页面时在 javascript 的开头放置一个断点。在“本地”部分下的右窗格下查看。在这里你展开这个:document,在所有:HTMLAllCollection[]下你可以看到所有元素,下面是一个列表,其中包含所有具有id的元素。但是 jQuery 文档https://api.jquery.com/id-selector/没有提到这一点,所以它不是正确的语法。同样为了可读性和维护,最好坚持使用 $('#id')。

于 2015-03-29T07:33:51.357 回答