【问题标题】:Why isn't this jQuery css() working?为什么这个 jQuery css() 不起作用?
【发布时间】:2013-02-03 03:03:37
【问题描述】:

我有一个包含以下内容的链接样式表:

.dirContent {width: 190px, padding: 10px;)

我正在运行这个脚本:

var npad = $(".dirContent").css("padding");
alert(npad);

...但它不起作用 - 它返回一个空白警报框。现在如果我运行这个脚本:

var npad = $(".dirContent").css("width");
alert(npad);

它返回“190px”,警报显示正确的值。

想法?

【问题讨论】:

标签: jquery


【解决方案1】:

我看到了两个问题:

本质上,检索简写属性在浏览器中的工作方式不一致。在 Chrome 中,查询“padding”属性会返回一个单部分字符串(“1px”),如果所有 4 个边均填充,如果任何边的填充不同,则返回一个 4 部分(“1px 2px 3px 4px”)字符串.

但是 IE9 什么也没返回。 Firefox 18 不返回任何内容。

var npad = $(".dirContent").css("padding");
alert(npad);
npad = $(".dirContent").css("padding-left");
alert(npad);

在几个浏览器中试用此示例,您应该会看到不同之处:http://jsfiddle.net/XDL3N/1/

如果你仔细想想,这种行为是有道理的。虽然速记非常适合设置属性,但对于获取它们却没有多大用处。您需要解析多段字符串才能对其进行任何有用的操作。

【讨论】:

  • 感谢您的快速回复。可能几个月后我才意识到我不能使用速记 css。 KCCO!
  • 没问题!我以前遇到过同样的事情。
  • 啊...我的代码不是这么草率...我在记笔记(错误地),我很抱歉。
【解决方案2】:

您正在使用 , 来终止 CSS 属性。

.dirContent {width: 190px; padding: 10px;}

这是fiddle

【讨论】:

    【解决方案3】:

    您的 css 属性格式错误,它必须是:

    .dirContent {width: 190px; padding: 10px;}
    

    工作小提琴:http://jsfiddle.net/XDL3N/

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2011-11-21
      • 1970-01-01
      • 2013-10-22
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多