【问题标题】:Take an img src and set it at background of upper div - JQuery取一个 img src 并将其设置在上 div 的背景 - JQuery
【发布时间】:2014-02-14 04:02:50
【问题描述】:

我有一个 div,里面有一个 img。随着这些生成,我想获取 img src 并将其设置在外部 div 的背景属性中。

(我正在尝试做一个圆形图像,然后按照教程进行操作)

我有这个。

JS

<script type="text/javascript">
        $(document).ready = (function() {
            var someId = $("#someId");
            $.each(someId, function(index, value) {
                var src = value.find('img').attr('src');
                value.css('background', 'url(' + src + ') no-repeat');
            });
        });
</script>

HTML

<div class="body">
    <h2><img alt="image" src="img-src" /></h2>
</div>

但是,当我运行该站点时,没有设置背景属性。

Here 是小提琴。

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    很少观察

    • 处理程序中的value 不是 jQuery 对象,因此它不会有像 find() 这样的方法
    • document.ready() 是一个函数,您需要将准备好的处理程序作为参数传递给它
    • 你可以使用.css(property, function(){})来设置css属性

    试试

    jQuery(function ($) {
        var someId = $("#someId");
        someId.css('background', function () {
            console.log('x')
            return 'url(' + $(this).find('img').attr('src') + ') no-repeat'
        })
    })
    

    演示:Fiddle

    【讨论】:

    • 谢谢你做得很好,只需添加'; ' 在括号的末尾:)
    【解决方案2】:

    您有语法错误,在 $.each( 代码的末尾缺少 });

    还有逻辑错误。 value 在您的代码中将是您通过 .find() 找到的 imgs,并且您正在尝试获取这些图像的 src 并将其设置为图像的背景...

    在图像上设置背景毫无意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 2022-11-18
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多