我想知道是否可以attr()
在新插件中使用该功能:
(function ($) {
$.fn.resetColor = function() {
var oldColor=this.attr("memColor");
this.css('background-color',oldColor);
};
})(jQuery);
我已经尝试了上面的代码,但是没有用。我确定该memColor
属性存在,因为我已经在代码$(document).ready
块中用警报对其进行了测试。
jQuery插件编写准则建议使用此方法:
(function ($) {
$.fn.resetColor = function() {
return this.each(function() {
var elem = $( this );
var oldColor = elem.attr("memColor");
elem.css('background-color',oldColor);
};
});
}(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] 删除。
我来说两句