İşte size bir satır içi stil değerini alacak bir araya atılan ettik (muhtemelen iyileşme çok ihtiyaç) çok basit bir eklenti bulunmaktadır mülkiyet (ve undefined
dönmek bu özellik bulunmazsa):
(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));
böyle diyebilirsin:
//Returns value of "width" property or `undefined`
var width = $("#someElem").inlineStyle("width");
İşte bir working example.
Yalnızca eşleşen kümedeki ilk öğesinin değerini döndüreceğini unutmayın. o tarz mülkiyet bulunmazsa zaman undefined
, bu gibi bir durumda kullanabilirsiniz döndürür yana
:
if (base.$element.inlineStyle("width")) {
// It has a `width` property!
}
Güncelleme
Burada çok, çok daha kısa versiyonu . prop("style")
öğesinin bir dize değil bir nesne döndürdüğünü ve bu nesnenin özelliklerinin kullanılabilir stil özelliklerine karşılık geldiğini fark ettim. Yani sadece bunu yapabilirsiniz:
(function ($) {
$.fn.inlineStyle = function (prop) {
return this.prop("style")[$.camelCase(prop)];
};
}(jQuery));
jQuery biri belgelenmemiş gibi görünüyor ve muhtemelen güvenmek iyi olmadığından, özel bir CamelCase fonksiyonu ile
$.camelCase
kullanımını değiştirmek isteyebilir
. Onu daha kısa olduğu için burada kullandım.
İşte o birinin bir working example bu. Bu durumda, stil öğe üzerinde bulunmadıysa, dönüş değeri boş dizge olacaktır. Bu hala false
için değerlendirecek, bu nedenle yukarıdaki if
deyimi hala çalışmalıdır.Stil niteliği
var attr = $(this).attr('style');
if (typeof attr !== 'undefined') {
}
Harika .. bazı reg-ex tabanlı çözümler olsa rağmen ... bu iş sonra harika! – coolguy
Teşekkürler James, harika çalıştı. –
@MatthewGrima - Rica ederim, yardımcı olabilirim :) –