6

.css()用来从元素中获取样式。但是在 Firefox中并没有从元素中.css()获取价值。marginpadding

请看小提琴:http: //jsfiddle.net/howtoplease/fMTsW/

这是我的jQuery代码:

$(document).ready(function(){
    $('input').each(function(){
        this.value = $('h3').css(this.name);
    });
});

我的html代码

<h3 style="margin:20px;padding:20px;font-size:30px;font-family:'open sans';">
    I am heading 3
</h3>

<input name="margin" />
<input name="padding" />
<input name="font-size" />
<input name="font-family" />
4

3 回答 3

10

CSS标签'margin & padding'实际上是四个独立的margin/padding值的简写,top/left/bottom/right。使用 css('marginTop') 等 - 请注意,如果您以这种方式指定它们,它们最后会有 'px'。

在结果周围使用 parseInt() 将其转换为数值。

<input name="margin-top" />
<input name="padding-top" />

或者

<input name="marginTop" />
<input name="paddingTop" />

这会给你价值。使用这种技术,您可以获得边距和填充的值。

于 2013-07-19T03:15:42.717 回答
5

发生这种情况是因为 和 之类的属性marginpadding速记属性,而 jQuery 无法为您提供这些值,而您使用的是独立值,例如margin-topmargin-right

margin-top此外,应该使用多个单词 like 访问属性,marginTop第二个单词的第一个字母应该是大写

对于一组完整的值:

<input name="marginTop" />
<input name="marginRight" />
<input name="paddingTop" />
<input name="paddingRight" />
<input name="fontSize" />
<input name="fontFamily" />
于 2013-07-19T03:17:11.597 回答
1

在您的小提琴代码中,我尝试更改 HTML。

<input name="margin"/>
<input name="padding"/>

<input name="margin-left"/>
<input name="padding-left"/>

并且值已正确设置在输入值字段中。这是因为marginin css 是一个关键字,它将诸如 margin-right、margin-left、margin-top、margin-bottom 等属性的值设置为一个值,但它本身不是一个属性。

于 2013-07-19T03:21:55.053 回答