如何通过jQuery将span标记中的文本添加到data-attr?

时间:2015-04-12 12:21:17

标签: javascript jquery html tags attr

如何将span标记中的文本添加到data-attr?

例:
我有这个代码



<div class="clearfix colelem" id="u92-5"><!-- content -->
     <p>Icon<span id="u92-2">iconsymbol</span></p>
    </div>
&#13;
&#13;
&#13;

我想将iconsymbol添加到data-attr =&#34;iconsymbol&#34;像a:

这样的元素

&#13;
&#13;
<div class="clearfix colelem" id="u92-5" data-attr="iconsymbol"><!-- content -->
         <p>Icon<span id="u92-2">iconsymbol</span></p>
        </div>
&#13;
&#13;
&#13; 是的,它将包含所有具有title =&#34; icon&#34;

的元素

&#13;
&#13;
<script>	
    $( document ).ready(function() {
	    $("[title*='icon']").attr('data-attr',function(){ 
   // I don't know
        }).removeAttr('title');
    });
</script>
&#13;
&#13;
&#13;

你知道怎么做吗? 所以我知道这很简单,但我是jquery的新手,我需要你的帮助 我希望你理解我的问题。

2 个答案:

答案 0 :(得分:0)

这是一个适合你的例子。可能有几种方法可以解决这个问题,但这应该可以让你开始。请参阅随附的JSFiddle以查看此示例的实际操作

$(function() {
    $('[title*="icon"] span').each(function(){
        $(this).parent().closest('div').attr('data-attr', $(this).text())
    });
});

这是另一种方法,你也可以这样做

$('[title*="icon"]').each(function(){
    $(this).attr('data-attr', $(this).children().closest('span').text());
});

JSFiddle Example

答案 1 :(得分:0)

您的<div>应该有title="icon"

属性

您正在使用attr()函数的回调,因此使用.text()返回您需要在函数内设置的值。

$(document).ready(function () {
    $("[title='icon']").attr('data-attr', function () {
        return $(this).find('span').text();
    }).removeAttr('title');
});

<强> Demo