JQuery获取img src并在as数据属性中使用它

时间:2016-06-22 18:47:03

标签: javascript jquery

我正在尝试使用需要特定HTML结构的JavaScript库,但遗憾的是我不允许更改它。
结构来自模板,我必须使用我所拥有的 关键是我尝试复制每个图像的src并将其放入data-largesrc =“image / source / here”。
任何线索我怎么能这样做?到目前为止,我已经有了这个,但它没有按预期工作:

$(document).ready(function () {
    $("a").attr('data-largesrc', "'" + $("a").children().attr('src')) + "'");
});

HTML结构是这样的:

<div class="container">
    <div id="products" class="productsList main">
        <ul id="og-grid" class="list og-grid">
            <li class="l1 i1 column1">
                <a href="?17,barracuda-email-security-gateway" tabindex="-1">
                    <img src="files/150/BARRACUDAESG.jpg.png" alt="BARRACUDAESG.jpg.png">
                </a>
            </li>
        </ul>
    </div>
</div>

我确信这应该很容易解决,但我似乎无法找到解决方案。非常感谢你能帮助我!

3 个答案:

答案 0 :(得分:1)

试试吧

$(document).ready(function () {
  $.each($("a"), function(i, k){
    $(this).data("largesrc", $(this).find("img").attr("src"));
  });
});

答案 1 :(得分:0)

children()方法返回父元素的所有直接子元素。换句话说,它将返回一个数组。你要找的是一个单一的物体。

无论如何,最好使用data()功能

&#13;
&#13;
function getImageSource() {
    var imgSrc = $("img").first().prop("src");
    $("img").data("largesrc", imgSrc);
    var data = $("img").data("largesrc");
    $("#img-data-value").html(data);
}

$("button").on("click", getImageSource);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    <div id="products" class="productsList main">
        <ul id="og-grid" class="list og-grid">
            <li class="l1 i1 column1">
                <a href="?17,barracuda-email-security-gateway" tabindex="-1">
                    <img src="files/150/BARRACUDAESG.jpg.png" alt="BARRACUDAESG.jpg.png">
                </a>
            </li>
        </ul>
    </div>
</div>

<button>Get Image Source</button>
<p id="img-data-value"></p>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

首先,您不需要额外的引号。其次,你应该使用.first()而不是.children(),因为.children()将返回一个数组,而.first()将返回第一个子节点(而你的只有一个子节点)。

    $(document).ready(function () {
        $("a").data('largesrc', $("a").first().attr('src')));
    });