这两个陈述有什么区别?
A:
$(document.getElementById('timer-' + endTimes[i].nid)).removeClass('hidden-timer').text('');
B:
$('#timer-' + endTimes[i].nid).removeClass('hidden-timer').text('');
[编辑]
感谢所有回复。
endTimes[i].nid
是数字,ex 340
。
对我来说最重要的区别是A行引起了WSOD,但B行工作正常。
答案 0 :(得分:5)
两者都做同样的事情,除了选择器可以搞乱特殊字符:http://jsfiddle.net/pimvdb/Mwrpb/。
var id = "a:b";
$(document.getElementById('timer-' + id)).text('abc');
// works, 'timer-a:b' means an id of 'timer-a:b' here
$('#timer-' + id).text('def');
// won't work: '#timer-a:b' means an id of 'timer-a' with pseudo class 'b' here
答案 1 :(得分:1)
它们都是jQuery(在DOM之上,在Javascript之上),它们都是等价的。
答案 2 :(得分:0)
第一个是使用DOM方法识别具有给定ID的元素。第二个是使用jQuery方式。第二个在这里更好,我甚至不确定第一个是否可行。
答案 3 :(得分:0)
实际上没什么。
第一个将DOM节点传递给jQuery选择器并构建一个jQuery对象。
第二个指示jQuery按元素ID构建一个jQuery对象。
为简洁起见,使用第二个。
答案 4 :(得分:0)
答:document.getElementById('timer')
是一个普通的Javascript方法,你不需要JQuery。
B:$('#timer')
是document.getElementById('timer')
的JQuery简写。
如果您打算使用JQuery,我建议坚持使用选项B.
答案 5 :(得分:0)
JQuery的, 您不需要指定document.getElementById。 Jquery可以为你做这项工作。如果需要通过纯JavaScript获取对象,则必须使用document.getElementById(getElementByName等等)。