在新插件中使用attr()函数?

我想知道是否可以attr()在新插件中使用该功能:

(function ($) {
     $.fn.resetColor = function() {
        var oldColor=this.attr("memColor");
        this.css('background-color',oldColor);
     };
})(jQuery);

我已经尝试了上面的代码,但是没有用。我确定该memColor属性存在,因为我已经在代码$(document).ready中用警报对其进行了测试

阿林·普卡鲁(Alin Purcaru)

jQuery插件编写准则建议使用此方法:

(function ($) {
     $.fn.resetColor = function() {
         return this.each(function() {
            var elem = $( this );

            var oldColor = elem.attr("memColor");
            elem.css('background-color',oldColor);
         };
     });
}(jQuery));
  1. 假设插件是在一组元素上调用的。
  2. 获取要使用的jQuery包装元素。

另外请注意,属性prop())和属性attr()之间存在区别,前者是指JavaScript DOM HTMLElements上的属性,而后者是指标记中指定的HTML属性。jQuery从1.6版开始也实现了这种区别:

属性和属性之间的差异在特定情况下可能很重要。在jQuery 1.6之前,.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。从jQuery 1.6开始,.prop()方法提供了一种显式检索属性值的方法,而.attr()则检索属性。


演示:

    (function ($) {
         $.fn.resetColor = function() {
             return this.each(function() {
                var elem = $( this );

                var oldColor = elem.attr("memColor");
                elem.css('background-color',oldColor);
             });
         };
    $('.me').resetColor();
    }(jQuery));
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="me" memColor="Red">Lorem ipsum.</div>
<div class="me" memColor="Blue">Lorem ipsum.</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章