如何使用循环从元素中的文本中获取每个char

时间:2013-08-08 10:24:32

标签: javascript jquery dom

* HTML

<div id="board_code" contenteditable="true">
    <div>a b</div>
    <div>cd</div>
</div>

* JS

var inlineDiv_num = $('#board_code > div ').size();
for( var x=0; x<inlineDiv_num; x++ ){
  var inlineDiv_num_textL = $('#board_code > div ').eq(x).text().length;
  for( var y=0; y<inlineDiv_num_textL; y++){    
        //PROBLEM HERE                  
        alert(  $('#board_code > div ').eq(x).eq(y).text() );
  }//for y
}//for x

我期待第一个警报是'a',第二个是'',第三个是'c',第四个是'd'。我将使用我得到的字符来比较intellisense thingy之类的东西。

注意 我的2 for循环结构不应该被破坏,我需要这个结构用于后面的解决

3 个答案:

答案 0 :(得分:0)

检查this小提琴。

它将使用substr函数在警报中逐个提供所有字符。

编辑:您也可以使用ElisianoPetrini提到的alert(inlineDiv_num_text.charAt(y));函数代替substr

var inlineDiv_num = $('#board_code > div ').size();
for (var x = 0; x < inlineDiv_num; x++) {
    var inlineDiv_num_textL = $('#board_code > div ').eq(x).text().length;
    var inlineDiv_num_text = $('#board_code > div ').eq(x).text();
    for (var y = 0; y < inlineDiv_num_textL; y++) {          
        alert(inlineDiv_num_text.substr(y, 1)); //modified this
    } //for y
} //for x

答案 1 :(得分:0)

尝试

var $ct = $('#board_code');

$ct.children('div').each(function(idx, div){
    var text = $(this).text();

    for(var i = 0; i < text.length; i++){
        console.log(text.charAt(i))
    }    
})

演示:Fiddle

答案 2 :(得分:0)

我的结构有点不同。

$("#board_code > div").each( function(idx) {
    var s=$(this).text()
    for(i=0;i<s.length;i++){
        alert("'"+s.charAt(i)+"'")
    }
})

您可以在此处找到它:http://jsfiddle.net/bjzDf/