在循环中从图像中获取alt文本

时间:2013-07-17 23:52:42

标签: jquery string instagram attr

我有一些代码可以搜索Instagram并返回一些结果。它们显示在div'imgDiv'中的一个小网格中。图像标题被添加为每个图像的“alt”文本,如果我在“prepend”函数之后立即放入alert('' + title + ');,我可以看到标题被完整地准确解析。

代码的下一部分允许用户点击图像并放大显示。这部分工作正常,正确的图像被放大,网格被隐藏。我想在放大的图像下面添加'alt text'作为标签 - 这就是它出错的地方。即使我使用并行函数来检索img src,当我运行下面的代码时,显示放大的图像,创建附加div,但只显示alt文本的第一个单词 - 字符串在第一个空格处断开。

任何人都可以在这里看到我出错的地方:

$('#imgDiv').prepend('<img alt=' + title + ' width=89 src= ' + imgurl  + ' onclick =  enlarge(this)>&nbsp;');
            }
       });
    }
function enlarge(el) {
  var source = $(el).attr('src'); 
  var label = $(el).attr('alt');
     $('#imgDiv').css('display', 'none');      
     $('#bigDiv').css('display', 'block').html('<img width = 600 src= ' + source  + '><br><div class=imgTitle>' + label + '</div>')
   }

感谢您的任何建议/协助。

2 个答案:

答案 0 :(得分:1)

您需要使用find来定位该特定元素

使用

var label = $(el).find('img').attr('alt');

this对应元素$('#imgDiv')。所以你需要找到img,它是元素的后代。

答案 1 :(得分:0)

解决!错误不在jquery中,而是在alt文本是字符串文字的情况下。灯泡继续,这固定了它:

$('#imgDiv').prepend('<img alt="' + title + '" width=89 src= ' + imgurl  + ' onclick =  enlarge(this)>&nbsp;');

添加一点标点符号的简单问题。

感谢所有回答或想过的人。我希望这个答案有助于其他人。