Javascript 关于replaceText函数
在下面的jQuery replaceText函数中,有人能给我解释一下行Javascript 关于replaceText函数,javascript,jquery,Javascript,Jquery,在下面的jQuery replaceText函数中,有人能给我解释一下行remove.length&&$(remove.remove()是什么?我不明白&&在这里的用法 $.fn.replaceText = function( search, replace, text_only ) { return this.each(function(){ var node = this.firstChild, val, new_val,
remove.length&&$(remove.remove()代码>是什么?我不明白&&在这里的用法
$.fn.replaceText = function( search, replace, text_only ) {
return this.each(function(){
var node = this.firstChild,
val,
new_val,
remove = [];
if ( node ) {
do {
if ( node.nodeType === 3 ) {
val = node.nodeValue;
new_val = val.replace( search, replace );
if ( new_val !== val ) {
if ( !text_only && /</.test( new_val ) ) {
$(node).before( new_val );
remove.push( node );
} else {
node.nodeValue = new_val;
}
}
}
} while ( node = node.nextSibling );
}
remove.length && $(remove).remove();
});
};
$.fn.replaceText=函数(仅搜索、替换、文本){
返回此.each(函数(){
var node=this.firstChild,
瓦尔,
纽约,
删除=[];
如果(节点){
做{
如果(node.nodeType==3){
val=node.nodeValue;
new_val=val.replace(搜索,替换);
如果(new_val!==val){
如果(!text_only&&/由于道路条件短路,$(remove).remove();
将仅在remove.length
为真时进行计算
由于remove
声明为数组,因此基本上与以下内容相同:
if(remove.length != 0)
$(remove).remove();
由于路径条件短路,$(remove).remove();
仅在remove.length
为真时才会计算
由于remove
声明为数组,因此基本上与以下内容相同:
if(remove.length != 0)
$(remove).remove();
它说:
如果remove.length返回的值不是0(相当于false),则删除该元素,它表示:
如果remove.length返回的值不是0(相当于false),则删除元素此处的&
表示$(remove).remove()
仅在remove.length
不是0时才会执行
这是因为&&
是一个短路运算符,因此如果之前的运算结果为false,则它将不会计算后面的任何运算。这里的&&
表示$(remove).remove()
仅在remove.length
不是0时才会执行
这是因为&&&
是一个短路运算符,因此,如果之前的运算结果为false,则它将不会计算后面的运算结果。它确保设置了“删除”对象
if(remove.length != 0)
在jQuery中,如果对象$(remove)不存在,.length函数将返回0,这与javascript中的False一致
如果它确实存在(remove.length>0),则将使用.remove()函数删除它。该命名肯定是不明确的
它基本上是一个内嵌条件语句,通过对不存在的对象调用.remove()来防止异常。它确保设置了“remove”对象
if(remove.length != 0)
在jQuery中,如果对象$(remove)不存在,.length函数将返回0,这与javascript中的False一致
如果它确实存在(remove.length>0),则将使用.remove()函数删除它。该命名肯定是不明确的
它基本上是一个内嵌条件语句,通过对不存在的对象调用.remove()来防止异常。尽管您对它的作用有一些正确的答案:
if(remove.length) // length is bigger than 0 (in this context)
$(remove).remove();
我必须说代码是愚蠢的,jQuery知道如何处理空集。
因此,当$(remove).length==0时,代码$(remove).remove();
什么也做不了
如果
,您只需在不使用的情况下使用它即可:
$(remove).remove();
虽然你对它的作用有一些正确的答案:
if(remove.length) // length is bigger than 0 (in this context)
$(remove).remove();
我必须说代码是愚蠢的,jQuery知道如何处理空集。
因此,当$(remove).length==0时,代码$(remove).remove();
什么也做不了
如果
,您只需在不使用的情况下使用它即可:
$(remove).remove();
请阅读不要复制作者错误,这是jQuery的糟糕用法。祝你好运!请阅读不要复制作者错误,这是jQuery的糟糕用法。祝你好运!