拆分字母和分配类

时间:2014-10-17 01:57:41

标签: javascript html

我遇到以下问题,我需要分隔一个范围中的每个字符,并根据字符使用javascript分配一个类。

我有这个:

<div>1111222</div>     

,最终结果应为:

<div>
   <span class="e1">1</class>
   <span class="e1">1</class>
   <span class="e1">1</class>
   <span class="e1">1</class>
   <span class="e2">2</class>
   <span class="e2">2</class>
   <span class="e2">2</class>
</div>     

这是我使用的代码:

var str = $('.test').text();
var result = "";
str = str.split("");
var h = $(this).text();
$.each(str,function(){
if( h = 1)
{
    result += '<span class="e1">' + this + '</span>';
}
else if ( h = 2)
{
    result += '<span class="e2">' + this + '</span>';
}
});
$('.test').html($(result));    

由于

2 个答案:

答案 0 :(得分:1)

var spanVals = $('div').text().split('');
for(var i = 0; i < spanVals.length; i++) {
    var span = $('<span>').addClass('e'+spanVals[i]).text(spanVals[i]);
    $('div').append(span);
}

答案 1 :(得分:0)

假设您有对div的引用,那么以下应该完成这项工作:

var div = document.getElementById('d0'); // id of div

// Get the text
var text = div.textContent;

// Clear the div content
div.innerHTML = '';

// Insert spans around characters
text.split('').forEach(function(c){
  var node = document.createElement('span').appendChild(document.createTextNode(c)).parentNode;
  node.className = 'e' + c;
  div.appendChild(node);
});

对于IE 8等旧版浏览器,您需要{em} forEach polyfill