在可编辑的div中使用多维数组?

时间:2013-12-05 16:11:43

标签: javascript jquery arrays contenteditable each

我正在使用可编辑div中的步骤。每个步骤可能包含不同的元素,如span,div等。我想在数据库中存储所有步骤及其元素或内容与相同的类。

方法,我已经使用 首先,我在每个步骤中收集了具有相同类的内容,然后我尝试通过.each循环将步骤和内容放入数组中。但是它不起作用

<div  id="txtarea2" contenteditable="true">
<div class="stepo1"><span  class="spannumber" id="1">1 </span> :
    <span id="1" class="steps3 ">yahhhjjjjjjjjasdfasdf</span></div>
<div class="stepo1"><span class="steps3 " >asdfasdfasdfasdf</span></div>
<br>

<div class="stepo2"><span class="spannumber" id="2">2 </span> :
    <span id="2" class="steps3 " >yahhhadfasdfasdf</span></div>
<br>

               答案

javascript就在这里。

    function add_to_answer(){
           var  values=[];
            $('.steps3').each(function(i,el){
           values.push(el.id.$('.stepo'+el.id).text());
            });
   alert(values);
   }

Jsfiddle 就在这里。

Plz帮助我或建议任何替代方法。

2 个答案:

答案 0 :(得分:1)

试试这个,

 function add_to_answer(){

       var  values=[];

       $('.steps3').each(function(){
          var xTemp = [];
          xTemp[xTemp.length] = $(this).attr('id');
          xTemp[xTemp.length] = $('.stepo'+ $(this).attr('id')).text();

          values[values.length] = xTemp;
          xTemp = [];
       });

       alert(JSON.stringify(values));

   }

DEMO

答案 1 :(得分:1)

要指出的一些事项:

你可以在循环中调用$(this).text()

JS:

function add_to_answer(){
   var  values=[];
   $('.steps3').each(function(){
       values.push($(this).parent().find('.spannumber').text());
   });
   alert(values);
}

另外,我不会使用不显眼的方法来调用函数。 答案

JS:

//bind on dom ready
$(function() {

    //bind click event 
    $('#answer').on('click', function() {

       var  values=[];
       $('.steps3').each(function(){
           values.push($(this).parent().find('.spannumber').text());
       });

      //do something with `values`

    });
});

链接到小提琴: http://jsfiddle.net/8N7Ez/