jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery检查元素是否具有内联定义的特定样式属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_0@
我需要检查一个元素是否有一个定义的css属性给它,但我有一些麻烦使用jQuery.css()函数

我要找的属性是宽度。

如果元素没有定义的宽度,我试试这个:

if(base.$element.css('width') !== 'undefined')

我得到浏览器的计算宽度。

解决方法

这里有一个非常简单的(可能需要改进)插件,我抛出一起,将获得一个内联样式属性的值(如果没有找到属性返回未定义):
​(function ($) {
    $.fn.inlinestyle = function (prop) {
         var styles = this.attr("style"),value;
         styles && styles.split(";").forEach(function (E) {
             var style = e.split(":");
             if ($.trim(style[0]) === prop) {
                 value = style[1];           
             }                    
         });   
         return value;
    };
}(jQuery));

你可以这样调用

//Returns value of "width" property or `undefined`
var width = $("#someElem").inlinestyle("width");

这是一个working example

请注意,它只返回匹配集中第一个元素的值。

因为当未找到该样式属性时,它返回未定义,所以可以在您的情况下使用它,如下所示:

if (base.$element.inlinestyle("width")) {
    // It has a `width` property!
}

更新

这里有一个@R_12_10584@的版本。我意识到prop(“style”)返回一个对象,而不是一个字符串,该对象的属性对应于可用的样式属性所以你可以这样做:

(function ($) {
    $.fn.inlinestyle = function (prop) {
        return this.prop("style")[$.camelCase(prop)];
    };
}(jQuery));

你可能想用一个自定义camelcase函数替换$ .camelCase的使用,因为jQuery一个似乎是无证的,可能不好靠。我只是在这里使用它,因为它更短。

这是一个working example的那一个。注意,在这种情况下,如果在元素上找不到样式,返回值将是空字符串。这仍然会评估为false,所以上面的if语句仍然应该工作。

大佬总结

以上是大佬教程为你收集整理的jQuery检查元素是否具有内联定义的特定样式属性全部内容,希望文章能够帮你解决jQuery检查元素是否具有内联定义的特定样式属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。