将href链接和id包装为span中的最后3个字符

时间:2015-11-26 17:39:09

标签: javascript jquery html

我想将hrefid包裹在span中包含的最后三个字符中。

HTML

<span id="cartCost">€0.00 EUR</span>

跨度的最后三个字符始终是货币代码。货币代码将根据您所在的地区自动更改。我试图将最后三个字符(货币代码)包装在href中。 href将用于激发选择框,并且不需要链接只是一个ID(所以即使将代码包装在div中也足够了。)

我知道我需要使用.each().wrapInnersubstring。无论如何,这是我一直在尝试的:

$('#cartCost').each(function() {
   var count = $(this).text( text.substring(-3)
    code  = $(count).text();
    $(code).wrapInner('<a href="#" id="open">');
})​

最终结果应如下所示:

<span id="cartCost">€0.00 <a href="#" id="open">EUR</a></span>

任何解决方案,非常感谢。

2 个答案:

答案 0 :(得分:2)

第一个ID必须是唯一的..使用类来代替

第二

$('.cartCost').each(function() {
   // get the text and use trim to avoid left and right white spaces
   var count = $.trim($(this).text());
   // get last three .. substring() needs start index and end index 
    var lastthree = count.substring(count.length - 3 , count.length);
   // replace last three with html code we want
    var replaceit = count.replace(lastthree , '<a href="#" class="open">'+ lastthree +'</a>');
   // append the new value as a html using .html() 
    $(this).html(replaceit);
})

Working Demo

答案 1 :(得分:0)

嘿,小提琴演奏后,这是我能想到的结果

<script>
    $(document).ready(function(){
        var content = $('#cartCost').html();
        var code  = content.substr(-3);

        var newCode = "<a href='#' id='open'>" + code + "</a>";
        var newContent = content.replace(code, newCode); 
       $('#cartCost').html(newContent);
    });

</script>

<span id="cartCost">€0.00 EUR</span>

以下是working fiddle