在JQuery中查询内联样式属性
我正在为一些特定格式的HTML编写一个JQuery HTML解析器,我需要为一个值查询一个内联样式 在代码中,我将逐步遍历特定的输入字段,并将此特定样式保存到数组中 首先,这里是我用来逐步遍历这些输入字段并获取宽度的代码。这可以工作,但不会返回正确的宽度值(我需要EM值) 下面是其中一个输入框的简化示例在JQuery中查询内联样式属性,jquery,html,css,Jquery,Html,Css,我正在为一些特定格式的HTML编写一个JQuery HTML解析器,我需要为一个值查询一个内联样式 在代码中,我将逐步遍历特定的输入字段,并将此特定样式保存到数组中 首先,这里是我用来逐步遍历这些输入字段并获取宽度的代码。这可以工作,但不会返回正确的宽度值(我需要EM值) 下面是其中一个输入框的简化示例 <input style="width:1.9500000000000002em;" maxlength="3" tabindex="1" class="inputBox" type="t
<input style="width:1.9500000000000002em;" maxlength="3" tabindex="1" class="inputBox" type="text">
谢谢你的帮助。谢谢 因为您正在检查属性而不是样式宽度
$(this).css('width')
当然,最简单的方法是从
this
的style
属性中获取它
$('.inputBox', this).each(function(index) {
widthArray[widthArray.length] = this.style.width;
});
从这里开始,这只是醉酒的猜测:理论上,您可以获得style
属性,并根据分割在其中找到的值代码>。然后您可以在:
上进一步拆分它们以获得键值对
比如:
$('.inputBox', this).each(function(index) {
var stylestemp = $(this).attr('style').split(';');
var styles = {};
var c = '';
for (var x = 0, l = stylestemp.length; x < l; x++) {
c = stylestemp[x].split(':');
styles[$.trim(c[0])] = $.trim(c[1]);
}
widthArray[widthArray.length] = styles.width;
});
$('.inputBox',this).each(函数(索引){
var stylestemp=$(this.attr('style').split(';');
var样式={};
var c=“”;
for(var x=0,l=stylestemp.length;x
不幸的是,jquery实际上只提供px值——这与width()方法b.t.w是一样的
有点脏,但是如果“width”是输入的唯一样式元素,您可以检索整个样式字符串并自己解析它:
var inputStyle = $("input").attr('style');
// make an array [ 'width', '1.9500000000000002em;' ]
var styleParts = inputStyle.split(':');
// make float from 1.9500000000000002em; --> 1.95
var widthEm = parseFloat(styleParts[1]);
由于javascript中的浮点精度,最终将丢失您的…0000002。
也许您需要使用字符串方法解析数字。谢谢,但我已经尝试过了,它返回一个像素宽度。我想要样式中声明的实际EM值。-1这不起作用。看见
var inputStyle = $("input").attr('style');
// make an array [ 'width', '1.9500000000000002em;' ]
var styleParts = inputStyle.split(':');
// make float from 1.9500000000000002em; --> 1.95
var widthEm = parseFloat(styleParts[1]);