所有产品都有H1标题,我想将该文本用于IMG的替代文本。我写的脚本不起作用。有人可以帮助我做对。单个产品的样品低于更多将在一个页面上。
HTML
<li class="prod">
<div class="mainpic">
<div class="popup">
<ul class="data">
<li>feature 1</li>
</ul>
<p>SKU: 4430757</p>
</div>
<img src="images/products/4330-12534-9126-333-TQ.jpg" width="220" height="210"
alt="Some text" />
</div>
<h1>Avia '5571' Women's Running Shoe</h1>
</li>
脚本(这是正确的吗?):
var $target = null;
var $newtext = null;
$(".prod").each (function () {
var target = $(this);
var newtext = target.find("h1").html();
target.each ( function () {
$(this).find(img).attr(newtext);
});
});
提前致谢!
答案 0 :(得分:3)
$('li.prod').each(function() {
var img = $(this).find('img');
var h1 = $(this).find('h1');
img.attr('alt', h1.text());
});
或更短:
$('li.prod').each(function() {
$(this).find('img').attr('alt', $(this).find('h1').text());
});
答案 1 :(得分:0)
var $target = null;
var $newtext = null;
$(".prod").each (function () {
var target = $(this);
var newtext = target.find("h1").html();
target.find(img).attr("alt",newtext);
});
应该这样做。您已将target定义为当前元素。不需要使用.each就可以了。
答案 2 :(得分:0)
$('li.prod').each(function() {
$('img', this).attr('alt', $('h1', this).text());
});