【发布时间】:2016-10-02 07:00:25
【问题描述】:
我正在尝试将属性设置为具有多个值的元素。有可能吗?
我想获取div元素的大小(高度、宽度)并设置在一个数组中,然后将该数组设置为属性值。
我做的是这样的:
function originBoxSize() {
each('body div', function () {
var boxSize = [$(this).css('height'), $(this).css('width')];// get the box size
$(this).attr('wcag-origin-box-size', boxSize); // set an new attr with boxsize value
});
}
现在boxSize 持有["102px", "499px"]
attr 看起来像这样:
wcag-origin-box-size="102px,499px"
当我想获得 attr 值时,我正在输入以下行:
$('#element').attr('wcag-origin-box-size')
结果是这样的:"102px,499px" 这是一个字符串。
有没有办法只从属性中获取特定值(高度或宽度)?
提前致谢。
【问题讨论】:
-
为什么不直接用 , 分割值呢? $('#element').attr('wcag-origin-box-size').split(",")[0] 会给你高度。
-
看
getComputedStyle()developer.mozilla.org/en-US/docs/Web/API/Window/… -
我可以这样做,以防我不成功这种方式我会分裂,但我很高兴有一种方法来获取/设置多个值
-
您可以将每个值设置为自己的属性。或序列化数组/对象/等。到一个字符串,设置它,并在读取它时反序列化它。或者,正如已经建议的那样,只是拆分字符串(这基本上只是一个自定义序列化)。一个属性本身只能包含一个值,并且该值是一个字符串。
-
检查这个小提琴:jsfiddle.net/mort3za/8s2z8dLw/6
标签: javascript jquery