当我使用jQuery时,我总是想知道一个特定的函数是否可以安全运行。例如:
$('#myButton').removeClass('hello'); // will this break if the 'hello' class isn't present?
$('#myButton').addClass('hello'); // will this duplicate the 'hello' class if it already exists on the button?
$('#myButton').text('newText'); // will this run to completion if the text on the element already says 'newText'
这些是一些例子,但我的首要问题是jQuery是否具有其功能安全性背后的一些理念。假设我们作为开发人员应该进行安全检查,或者我们可以假设jQuery的功能内置了安全检查,这是否安全?
另外,我对上面三个例子中的最后一个特别感到好奇。它是这样运行的吗?
if ($myButton.text() !== 'newText') {
$myButton.text('newText');
}
或者只是这样:
$myButton.text('newText');
答案 0 :(得分:1)
正如其他人所说,当你传递一个缺失的选择器时,JQuery会不会中断。至于另一个问题,请看一下代码:
this.empty().each( function() {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
this.textContent = value;
}
} );
看起来它实际上运行.empty()来清理元素然后注入内容,无论它是否是相同的内容。