jQuery总能安全地运行函数吗?

时间:2017-10-19 15:42:57

标签: javascript jquery

当我使用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');

1 个答案:

答案 0 :(得分:1)

正如其他人所说,当你传递一个缺失的选择器时,JQuery会不会中断。至于另一个问题,请看一下代码:

this.empty().each( function() {
    if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
        this.textContent = value;
    }
} );

看起来它实际上运行.empty()来清理元素然后注入内容,无论它是否是相同的内容。