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

How to get every char from a text inside an element using a loop

本文关键字:获取 字符 文本 循环 何使用 元素      更新时间:2023-09-26

*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之类的东西进行比较。

注意我的2 for循环结构不应该被妥协,我需要这个结构来解决

检查这个小提琴。

它将使用substr函数逐个给出警报中的所有字符。

EDIT:您也可以使用alert(inlineDiv_num_text.charAt(y));函数,而不是ElisianPetrini提到的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

尝试

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

我的结构会有所不同。

$("#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/