Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于replaceText函数_Javascript_Jquery - Fatal编程技术网

Javascript 关于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,

在下面的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 = [];  
    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的糟糕用法。祝你好运!