在jQuery中使用$与variables有什么特定的原因
我知道这是一个愚蠢的问题,但我有点困惑。 例如,如果我有一个ID为rad1
的input,下面rad1
行代码有什么不同?
var $a = $('#rad1')
要么
var a = $('#rad1')
没有,没有真正的区别。
这只是一个约定,可以帮助你记住a
不是DOM元素,而是jQuery对象。
var a = document.getElementById('a'); a.innerHTML //fine var $a = $('#a'); $a.html() // fine
哦,顺便说一下, a
或$a
都不是好的variables名…你应该使用有意义的variables名而不是abc字符。
阅读这个相同的网站上的jQuery信息标签 :
variables命名约定
jQuery包装variables通常以'$'开头,以区别于标准的JavaScript对象。
var $this = $(this);
这只是为了显示它是一个JQueryvariables。
声明$a
你显示你的variables是JQuery对象,这只是一个符号。 所以最可读的东西是用$表示法来声明Jqueryvariables
var $obj=$("#obj");
和没有$表示法的DOM元素
var obj = document.getElementById("obj");
没有区别。 这只是一个编码惯例,以帮助确定variables代表一个jquery包装的对象。
没有区别它的正义编码惯例, 检查这个
作曲也很好:
你也可以做这样的事情来显示一个<div>
:
function getCompTable(divId){ var $d = $('#' + divId); $d.show(); }
用法
getCompTable('compListDiv'); // compListDiv - is a div id=""
Yosi列弗
我想这个场景应该说明记住(当然,分配'$')jquery和简单的javascriptvariables的原因:
<form id='myform' > <input id="name" type="text" value="Peter" /> </form> <script> $(document).ready(function(){ var name = document.getElementById('name'); var $name = $('#name'); console.log(name.value); // javascript's properties are available console.log($name.value); //it is undefined (worth of notice) console.log(name.val()); // error! name.val is not a function ! (jquery function will not be available) console.log($name.val()); // jquery functions are available }); </script>
当设置var d = $('<div>');
我没有findd.addClass('someclass');
之间的区别d.addClass('someclass');
和$(d).addClass('someclass');