jquery 按属性名称选择每个此值附加文本

Posted

技术标签:

【中文标题】jquery 按属性名称选择每个此值附加文本【英文标题】:jquery select by attribute name each this value pepend text 【发布时间】:2014-08-31 09:50:28 【问题描述】:

通过某个属性名称选择元素,在本例中为“图标”:

<a href="#" icon="one.png">link</a>
<a href="#" icon="two.png">link</a>
<a href="#" icon="three.png">link</a>

然后在每个元素前面加上一个 &lt;span&gt; 与元素属性值的文本, 示例:

<span>one.png</span><a href="#" icon="one.png">link</a>
<span>two.png</span><a href="#" icon="two.png">link</a>
<span>three.png</span><a href="#" icon="three.png">link</a>

怎么做?

【问题讨论】:

你试过什么??? 【参考方案1】:

尝试使用.before() 和接收器功能来完成您的任务,

$('a[icon]').before(function()
  return $("<span>", text: $(this).attr('icon'));
)

DEMO

【讨论】:

【参考方案2】:

试试这个:

$('a[icon]').each(function()
   $(this).before('<span>'+$(this).attr('icon')+'</span>');
);

Demo

【讨论】:

【参考方案3】:

试试这个方法

$('a[icon]').each(function()
   $(this).before('<span>'+$(this).attr('icon')+'</span>') 
);

DEMO

【讨论】:

【参考方案4】:

试试这个:

$('a[icon]').each(function()
   $('<span />',  text : this.getAttribute('icon') ).insertBefore(this);
);

【讨论】:

@downvoter 注意评论,这是一个新手错误,使用.before() 方法必须是.insertBefore()。已更新。

以上是关于jquery 按属性名称选择每个此值附加文本的主要内容,如果未能解决你的问题,请参考以下文章

jquery 在按名称属性获取值时出现问题

需要使用Jquery按元素名称获取标签名称[重复]

jQuery:当我有多个具有相同名称但唯一 id 的元素时,我可以按名称选择一个元素并读取它的 id 吗?

JQuery属性操作常用方法

如何使用jquery更改与特定类匹配的所有文本框的属性

如何使用 jQuery 按名称选择元素?