我正在使用可编辑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帮助我或建议任何替代方法。
答案 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));
}
答案 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/