在JQuery中使用octothorpe(#)指定对象
我有一天开始学习JQuery,对OctorThorpe语法有一个问题 我知道#可以用来指定对象的ID 例如: HTML对象在JQuery中使用octothorpe(#)指定对象,jquery,syntax,Jquery,Syntax,我有一天开始学习JQuery,对OctorThorpe语法有一个问题 我知道#可以用来指定对象的ID 例如: HTML对象 <div id="myDiv">...</div> 然而,我注意到我可以不用#完成同样的事情 不使用# 我更喜欢不包含引号和octothorpe的语法,但我不确定这样做是否会被视为不好的做法/习惯 我应该接受它并坚持使用octothorpe语法,还是这真的是一个偏好的问题 hmmm,省略#和引号会破坏我的计算机上的jQuery选择器……我会查看您页
<div id="myDiv">...</div>
然而,我注意到我可以不用#完成同样的事情
不使用#
我更喜欢不包含引号和octothorpe的语法,但我不确定这样做是否会被视为不好的做法/习惯
我应该接受它并坚持使用octothorpe语法,还是这真的是一个偏好的问题 hmmm,省略#和引号会破坏我的计算机上的jQuery选择器……我会查看您页面上的源代码,并确保您的浏览器没有使用代码中仍带有“#”的页面缓存版本
据我所知,$(mydiv)将选择文档中的任何Andy引用DOM元素是一种非常糟糕的做法,也是一种极不可靠的方法 以以下为例:
var myDiv = 'blahblahblah';
$(myDiv).hide();
这将转化为:
$('blahblahblah').hide();
这不是你想要的
$('#myDiv').hide()代码>将始终有效
在JavaScript范围内显示元素ID也是一种非标准的传统;所以不要依赖它 引用DOM元素是一种非常糟糕的做法,也是一种极不可靠的方法
以以下为例:
var myDiv = 'blahblahblah';
$(myDiv).hide();
这将转化为:
$('blahblahblah').hide();
这不是你想要的
$('#myDiv').hide()代码>将始终有效
在JavaScript范围内显示元素ID也是一种非标准的传统;所以不要依赖它 后面的语句之所以有效,是因为您有一个myDiv变量,或者因为您在with语句中,或者类似的东西。它在正常情况下不工作。所以要回答你的问题,你需要一直使用第一个语法。。。除非您碰巧有一个变量,如:
var myDiv = document.getElementById("myDiv");
或
哦,我差点忘了:一些浏览器有效地将代码包装在with语句中;我完全忘了是哪个浏览器,但我认为IE是唯一一个这样做的浏览器。因此,您可能实际上没有var或with语句,但在幕后,您的浏览器正在添加一个var或with语句(这意味着您的代码只能在该浏览器上运行,而不能在其他浏览器上运行)。您后面的语句只能在您有myDiv变量,或者因为您在with语句中,或者类似的情况下工作。它在正常情况下不工作。所以要回答你的问题,你需要一直使用第一个语法。。。除非您碰巧有一个变量,如:
var myDiv = document.getElementById("myDiv");
或
哦,我差点忘了:一些浏览器有效地将代码包装在with语句中;我完全忘了是哪个浏览器,但我认为IE是唯一一个这样做的浏览器。因此,您可能实际上没有var或with语句,但在幕后,您的浏览器正在添加一个var或with语句(这意味着您的代码只能在该浏览器上工作,而不能在其他浏览器上工作)。如果您将变量设置为div,则将使用显示的第二种方法,例如
var myDiv = $('#myDiv');
或
如果将变量设置为div,则将使用显示的第二种方法,例如
var myDiv = $('#myDiv');
或
好吧,像上一个例子中那样插入myDiv
依赖于浏览器的细微差别,并且可能会在某些浏览器中中断
我理解的是另一个问题,如果在代码的某个地方实际定义了一个变量var myDiv=“foo”代码>或者什么的。至少,使用#myDiv
语法,您可以明确表示希望通过ID选择某个内容。AFAIK,像上一个示例中那样插入myDiv
,有点依赖于浏览器的细微差别,并且可能会在某些浏览器中中断
我理解的是另一个问题,如果在代码的某个地方实际定义了一个变量var myDiv=“foo”代码>或者什么的。至少,使用#myDiv
语法,您明确表示希望通过ID选择某个对象。我怀疑您确实在某处将myDiv
作为变量。是的;“myDiv”是我的id,如我的示例的第一部分所示。那么字符串值为'#myDiv'
的myDiv
与直接使用字符串'#myDiv'
有什么区别吗?@BoltClock:我不确定我是否理解你的问题。我问题的核心是,当我希望引用对象/元素的ID(在jquery中)时,是否应该“始终”使用#语法。我的问题源于这样一个事实:当我引用一个元素时,无论是否使用#语法,我都能够成功地隐藏它。在答案的帮助下,我现在知道使用#语法显式引用对象的ID,而不是可能命名为“myDiv”的“any”变量。我怀疑您实际上在某处有myDiv
作为变量。是的;“myDiv”是我的id,如我的示例的第一部分所示。那么字符串值为'#myDiv'
的myDiv
与直接使用字符串'#myDiv'
有什么区别吗?@BoltClock:我不确定我是否理解你的问题。我问题的核心是,当我希望引用对象/元素的ID(在jquery中)时,是否应该“始终”使用#语法。我的问题源于这样一个事实:当我引用一个元素时,无论是否使用#语法,我都能够成功地隐藏它。借助于