我正在为一些特别格式化的HTML编写JQuery HTML解析器,我需要查询内联样式的值。
在代码中,我逐步执行特定的输入字段并将此特定样式保存到数组中......
这里首先是我用来逐步浏览这些输入字段并获取宽度的代码。这有效,但没有返回正确的宽度值(我想要EM值)。
$('.inputBox',this).each(function(index)
{
widthArray[widthArray.length] = $(this).attr('width');
}
以下是其中一个输入框的简化示例
<input style="width:1.9500000000000002em;" maxlength="3" tabindex="1" class="inputBox" type="text">
任何帮助表示赞赏。谢谢!
答案 0 :(得分:8)
当然,最简单的方法是从style
的{{1}}属性中获取它。
this
从这里开始,这只是醉酒的推测:理论上,您可以获取$('.inputBox', this).each(function(index) {
widthArray[widthArray.length] = this.style.width;
});
属性并根据style
拆分在那里找到的值。然后,您可以在;
上进一步拆分它们以获取键值对。
类似的东西:
:
答案 1 :(得分:1)
不幸的是,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。 也许你需要用字符串方法解析数字。
答案 2 :(得分:-4)
因为您检查属性而不是样式宽度
$(this).css('width')