如何将属性添加到textfield.JS / Jquery中具有特定文本值的<img/>标记

时间:2014-12-23 05:56:53

标签: javascript jquery html

我在每个<img>标记上附加了<text>标记,如下所示:

<div>
  <text text-anchor="start" class="text">Text 1</text>
  <img src="abc.png" class="nv-hover-icon" height="15" width="22"/>
</div>
<div>
 <text text-anchor="start" class="text">Text 2</text>
 <img src="abc.png" class="nv-hover-icon" height="15" width="22"/>
</div>
<div>
  <text text-anchor="start" class="text">Text 3</text>
  <img src="abc.png" class="nv-hover-icon" height="15" width="22"/>
</div>

如何为text =='Text2'的图像添加属性。

if($("text.text").text() == 'Text 2'){
   //add an attr 'id' to the img tag
  //pseudo code: $("img").attr("id", "image-id");
}

关于如何实现这一点的任何想法? 谢谢!

3 个答案:

答案 0 :(得分:2)

试试这个:您可以使用.filter()查找所需的文字,然后使用.next()查找图片并添加属性

$("text.text").filter(function(){
  return $(this).text().trim() == 'Text 2';
}).next().attr("id", "image-id");

API Doc for filter()

答案 1 :(得分:2)

您可以将.filter().next()

结合使用
  

将匹配元素集合减少到与选择器匹配的元素或通过函数测试。

代码

$("text.text").filter(function(){
    return $(this).text() == 'Text 2'
}).next("image").attr("id", "image-id");

此外,它应该是img代码而不是image

答案 2 :(得分:0)

你可以这样做。

$('.text').each(function(){
    if($(this).html().indexOf('2')>0)
    {
       $(this).next().attr('id','img2');
    }
});

请查看以下小提琴代码。

Fiddle

或者您也可以这样做。

$('.text').each(function(){
   if($(this).html() == "Text 2")
   {
      $(this).next().attr('id','img2');
   }
});

Fiddle 2