Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 为什么;这";在jQuery中,插件是否未按预期工作?_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 为什么;这";在jQuery中,插件是否未按预期工作?

Javascript 为什么;这";在jQuery中,插件是否未按预期工作?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,“嗨 我正在尝试做一个jQuery插件,但是当我尝试获取一个元素的文本并重复它时,插件会对页面上的每个元素都执行 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h

“嗨

我正在尝试做一个jQuery插件,但是当我尝试获取一个元素的文本并重复它时,插件会对页面上的每个元素都执行

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script type="text/javascript">
        $.fn.codigo = function() {
            this.append(this.text());
        };

    $(function() {
        $('.esto').codigo();
    });

    </script>

</head>
<body>
<div class="esto">1</div>
<div class="esto">2</div>
</body>
</html>

$.fn.codigo=函数(){
this.append(this.text());
};
$(函数(){
$('.esto').codigo();
});
1.
2.
此代码将返回:

112 212

但我只想让它退回这个:

11 22


这是因为
这个
引用了选择器匹配的元素集合

您希望对每个
进行
并单独处理:

$.fn.codigo = function() {
    this.each(function() {
        var $t = $(this);
        $t.text($t.text()+$t.text());
    }):
    return this;
};

这是因为
这个
引用了选择器匹配的元素集合

您希望对每个
进行
并单独处理:

$.fn.codigo = function() {
    this.each(function() {
        var $t = $(this);
        $t.text($t.text()+$t.text());
    }):
    return this;
};

像这样写你的插件

(function($) {

  $.fn.codigo = function() {
    return this.each(function(idx, elem) {
      $(elem).text(function(idx, str) {
        return str + str;
      });
    });
  };

})(jQuery);

查看元素的-
fn
receives
index
,并将
str
设置为现有文本。函数的返回值设置新文本


上面是您的标准jQuery插件样板。然而,如果这是插件的真正目标,您可以将其简化一点

jQuery.fn.codigo = function() {
    return this.text(function(idx, str) { return str + str; });
};

这将非常快,因为它将函数调用减少了相当多(与这里提供的其他解决方案相比)。

像这样编写插件

(function($) {

  $.fn.codigo = function() {
    return this.each(function(idx, elem) {
      $(elem).text(function(idx, str) {
        return str + str;
      });
    });
  };

})(jQuery);

查看元素的-
fn
receives
index
,并将
str
设置为现有文本。函数的返回值设置新文本


上面是您的标准jQuery插件样板。然而,如果这是插件的真正目标,您可以将其简化一点

jQuery.fn.codigo = function() {
    return this.text(function(idx, str) { return str + str; });
};

这将是相当快的,因为它将函数调用减少了相当多(与这里提供的其他解决方案相比)。

插件在应用它的元素列表中调用一次,而不是每个元素调用一次。因此,
这是一个包含所有元素的jQuery对象

循环遍历元素并将代码应用于每个元素,为了制作一个好的插件,还需要返回
this
,以便链接:

$.fn.codigo = function() {
  return this.each(function(i, e){
    $(e).append($(e).text());
  })
};

插件会被调用一次,其中包含应用它的元素列表,而不是每个元素调用一次。因此,
这是一个包含所有元素的jQuery对象

循环遍历元素并将代码应用于每个元素,为了制作一个好的插件,还需要返回
this
,以便链接:

$.fn.codigo = function() {
  return this.each(function(i, e){
    $(e).append($(e).text());
  })
};

这个插件中的
是一个包含多个元素的jquery集合。我认为你想要的是:

 $.fn.codigo = function() {
     this.each(function(){
         $(this).append($(this).text());
     });
     return this;
 }

这个插件中的
是一个包含多个元素的jquery集合。我认为你想要的是:

 $.fn.codigo = function() {
     this.each(function(){
         $(this).append($(this).text());
     });
     return this;
 }
请尝试这一个,因为这是一个非常简单和好的概念。。。。。。。。
请您至少检查一次这一概念。。。。。。。。。。
$.fn.codigo=函数(){
this.append(this.text());
};
$(函数(){
$('.esto')。每个(函数(){
$(this.append($(this.text());
});
});
1.
2.
请尝试这一个,因为这是一个非常简单和好的概念。。。。。。。。
请您至少检查一次这一概念。。。。。。。。。。
$.fn.codigo=函数(){
this.append(this.text());
};
$(函数(){
$('.esto')。每个(函数(){
$(this.append($(this.text());
});
});
1.
2.

不要忘记
返回可链接性的jQuery集合。不要忘记
返回可链接性的jQuery集合。@Bergi感谢您的编辑。我很荣幸你能如此仔细地看我的一个答案^。^@Bergi谢谢你的编辑。我很荣幸你能如此仔细地看我的一个答案^^