2011-01-07 193 views
2

我想获得一个css属性,它是用jquery动态设置的。jquery css获取动态设置属性

考虑以下代码:

$(document).ready(function(){ 

$("#clickme").click(function(){ 

    $("#myTable").css('borderStyle','solid'); 
    $("#myTable").css('borderColor','black'); 
    $("#myTable").css('borderWidth','3px'); 
}); 

$("#clickme2").click(function(){ 
    alert($("#myTable").css('borderWidth')); 
}); 

}); 

点击clickme按钮设置表mytable的 与预期性质(3px的纯黑色), 但随后点击clickme2不会得到 的3px的价值! 你知道任何修复吗?

我读到这里Can jQuery get all CSS styles associated with an element?

,一个解决办法是使用DOM元素的.style, 但如果jQuery的能做到这一点,我宁愿jQuery的方法...

(所见即所得的对于计算器是一个非常不错的主意;))

+0

请注意,您的代码可以改进/简化为$('#myTable')。css({borderStyle:'solid',borderColor:'black',borderWidth:'3px'});` – Phrogz 2011-01-07 21:17:48

+0

什么时候会发生什么你点击clickme2? – Jake 2011-01-07 21:28:33

回答

2

我的理解是,当你设定一个值“边框宽度”,它的设置“borderTopWidth”,“borderRightWidth”,“borderBottomWidth”和“borderLeftWidth”所有的简写方式立刻。

因此,我认为你必须指定你想得到的边框的哪一边,比如“borderBottomWidth”。

0

没有实际价值borderWidthborder-width它是一个简写属性设置四个基础性border-top-widthborder-right-width

因此,你可以只对那些四个值之一查询:

DEMO:http://jsfiddle.net/marcuswhybrow/zu74F/