我正在尝试使用需要特定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>
我确信这应该很容易解决,但我似乎无法找到解决方案。非常感谢你能帮助我!
答案 0 :(得分:1)
试试吧
$(document).ready(function () {
$.each($("a"), function(i, k){
$(this).data("largesrc", $(this).find("img").attr("src"));
});
});
答案 1 :(得分:0)
children()
方法返回父元素的所有直接子元素。换句话说,它将返回一个数组。你要找的是一个单一的物体。
无论如何,最好使用data()
功能
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;
答案 2 :(得分:0)
首先,您不需要额外的引号。其次,你应该使用.first()而不是.children(),因为.children()将返回一个数组,而.first()将返回第一个子节点(而你的只有一个子节点)。
$(document).ready(function () {
$("a").data('largesrc', $("a").first().attr('src')));
});