jQuery - 从元素获取属性,将其插入另一个并重复

时间:2013-12-09 21:44:28

标签: javascript jquery attr

请原谅我缺乏知识,但我对JS很新。我在网站上显示Instagram Feed,需要将图像的title属性插入到包装链接中,以将其显示为灯箱标题。 我的解决方案到目前为止工作,但问题是,第一个图像的标题插入到每个链接而不仅仅是包含链接。

剧本:

function (){ 
    $('#instapics a').lightBox();
    jQuery('#instapics a img').each(function () {
        $('#instapics a').attr('title', $(this).attr('title'));
    });
}

html:

<div id="instapics">
  <a href="#">
    <img title="IMG title 1" src="xxx">
  </a>
  <a href="#">
    <img title="IMG title 2" src="xxx">
  </a>
  ...
</div>

这会在两个链接中插入“IMG标题2”。但我需要第一个“IMG标题1”,第二个是“IMG标题2”,第三个是“IMG标题3”,依此类推。我错过了什么?

我期待着一些有用的提示。

3 个答案:

答案 0 :(得分:4)

jQuery('#instapics a img').each(function () {
   $(this).parent().attr('title', $(this).attr('title')); 
}); // add it to the parent of img which is a

您也可以使用this.title代替jQuery的$(this).attr('title')

答案 1 :(得分:1)

这是因为你正在选择所有的锚点而不是你当前正在处理的锚点。

$('#instapics a').attr(

需要

$(this).attr(

您应该使用prop()代替attr()

答案 2 :(得分:0)

您可以使用此代码:

$( "#instapics a" ).attr( "title", function() { //Will loop in every a's
    return $(this).find('img').attr('title'); //Return img title to change the a title.
});

<强> Fiddle