Jquery:从H1添加IMG Alt文本

时间:2011-09-16 21:55:59

标签: jquery

所有产品都有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);

});

    });

提前致谢!

3 个答案:

答案 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());
});