【问题标题】:get background value using css in jquery在 jquery 中使用 css 获取背景值
【发布时间】:2015-04-02 21:08:53
【问题描述】:

http://jsfiddle.net/g6h28a2a/

div {
    background: url('http://i.imgur.com/tOaDddv.png') no-repeat;
}
alert($('div').css('background'));

我希望它返回url('http://i.imgur.com/tOaDddv.png') no-repeat;,但它返回了一个奇怪的字符串。虽然如果我将该值分配给另一个元素,它也可以工作,但我只是不明白为什么它返回那个奇怪的字符串。

【问题讨论】:

  • jQuery css() 方法返回的计算样式可能因浏览器而异
  • 检查元素并查看计算的样式:i.imgur.com/Z2frsPM.png

标签: javascript jquery html css


【解决方案1】:

'background' 是一系列属性(在MDN 上阅读更多相关信息)。我假设您想要的是“背景图像”和“背景重复”属性。

alert($('div').css('background-image') + " " + $('div').css('background-repeat'));

【讨论】:

  • 是的,但是如果 OP 在其他答案的评论中建议有 !important 声明怎么办。事实上 OP 应该看看 document.styleSheets 但我只是看不出有任何理由
  • @A.Wolff:jQuery 中不存在该功能。检查stackoverflow.com/questions/10314131/… 以获取无 jQuery 解决方案。
【解决方案2】:

你可以结合两个属性来获得你需要的相同的东西:

alert(
   $('div').css('background-image') 
   + ' ' 
   + $('div').css('background-repeat') 
 );

【讨论】:

    【解决方案3】:

    你可以试试

    alert($('div').css('background-image'));
    div {
        background: url('http://i.imgur.com/tOaDddv.png') no-repeat;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <div></div>

    【讨论】:

    • no-repeat 声明呢?
    • 嗯,这与 OP 发布的内容有何不同?你只指定了图像?你没有解释为什么 OP 看到他们看到的东西。
    • 我认为反对它的人至少可以发表评论
    • 这个答案隔离了背景 url,这显然是 OP 想要看到的。这行得通。
    • OP 希望看到url('http://i.imgur.com/tOaDddv.png') no-repeat; 而不仅仅是 BG 图像。问题没有回答为什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多