要素に定義されたCSSプロパティがあるかどうかを確認する必要がありますが、jQuery.css()関数を使用するときに問題があります。要素に特定のスタイルプロパティがインラインで定義されているかどうかを確認するjQuery check
私が探しているプロパティは幅です。
要素が定義された幅を持っていないと、私はこれをしようとした場合:
if(base.$element.css('width') !== 'undefined')
私は、ブラウザの計算された幅を取得します。
要素に定義されたCSSプロパティがあるかどうかを確認する必要がありますが、jQuery.css()関数を使用するときに問題があります。要素に特定のスタイルプロパティがインラインで定義されているかどうかを確認するjQuery check
私が探しているプロパティは幅です。
要素が定義された幅を持っていないと、私はこれをしようとした場合:
if(base.$element.css('width') !== 'undefined')
私は、ブラウザの計算された幅を取得します。
ここであなたにインラインスタイルの値を取得します私は一緒に投げてきた(おそらく改善の多くを必要としている)非常に単純なプラグインですプロパティ(およびそのプロパティが見つからない場合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));
あなたはこのようにそれを呼び出すことができます
ここにはworking exampleがあります。
の最初の要素の値のみが一致するセットに戻されることに注意してください。
それはundefined
そのスタイルプロパティが見つからない場合、あなたはこのようなあなたのような状況で使用することができますを返すので:
if (base.$element.inlineStyle("width")) {
// It has a `width` property!
}
更新
ここでは、はるかに短いバージョンです。私はprop("style")
が文字列ではなくオブジェクトを返し、そのオブジェクトのプロパティが利用可能なスタイルプロパティに対応していることに気付きました。だから、ちょうどこの操作を行うことができます。
(function ($) {
$.fn.inlineStyle = function (prop) {
return this.prop("style")[$.camelCase(prop)];
};
}(jQuery));
をあなたはjQueryの1が文書化されていないように見えるとに依拠することはおそらく良いではないので、カスタムキャメルケース機能を$.camelCase
の使用を交換することができます。私はちょうどそれがより短いのでここでそれを使用しました。
ここには、working exampleがあります。この場合、要素にスタイルが見つからなかった場合、戻り値は空の文字列になります。それはまだfalse
と評価されるので、上記のif
のステートメントは引き続き動作するはずです。
.attr
を使用してstyle
属性を確認してください。あなたは、幅を気にしている場合
if(base.$element.attr('style').length > 0) {
//...
}
if(base.$element.attr('style').indexOf('width') !== -1) {
//...
}
スタイル属性が
var attr = $(this).attr('style');
if (typeof attr !== 'undefined') {
}
これは質問が求めていることではありません。 'width'が' style'属性で定義されているかどうかを確認することを求めています。 –
例えば、「幅」:
if ($(element).prop("style")["width"] !== '')
{...}
偉大な..最初のいくつかのreg - exのベースのソリューション..しかし、この作品は素晴らしい! – coolguy
Jamesさん、ありがとうございました。 –
@MatthewGrima - あなたが大歓迎です、私が助けることができてうれしいです:) –