这两个陈述有什么区别?

时间:2011-09-18 08:33:35

标签: javascript jquery

这两个陈述有什么区别?

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行工作正常。

6 个答案:

答案 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等等)。