我正在创建一个基于代码的表,该代码将创建x行,然后每行将有一个rowspan =" 3" 每行都有不同的对象(输入,选择等)
- text | input | select | select | input | text
Event 1 - text | input | select | select | input | text
- text | input | select | select | input | text
Event 2
我最终将保存"事件1"和行到MySQL DB
如何迭代3行并在一个数组中获取,文本,输入和选定选项?
我尝试过代码,例如,
$('select.so').filter(':visible').children(':selected')
返回所选结果。
如何获取所有元素的列表?
function loadTable() {
var event = new Array();
event[0] = "200 Yard Medley Relay"
event[1] = "200 Yard Free Style"
$('#sections').append('<table></table>');
var table = $('#meetTable').children();
for (i = 0; i < event.length; i++) {
table.append('' +
'<tr id= class="header expand" >' +
'<th rowspan="3" id="eventNames">' + event[i] + '</th>' +
'<td contenteditable="true">' +
'<select id ="s1" name="swimmerOption" class="so"><?php echo $options; ?>' +
'</select>' +
'</td> ' +
'<td>' +
'<select class="lane"> ' +
'<option value="1">1</option>' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'</select> </td>' +
'<td contenteditable="true" value="">' +
'<input type="text" style="width:70px;text-align: center" class="time" autocomplete="off">' +
'</td> ' +
'<td> ' +
'<select class="place"> ' +
'<option value="1">1</option> ' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'</select>' +
'</td>'
'</tr> ' +
'<tr>')
}
}
答案 0 :(得分:0)
这个怎么样:
var $elements;
$('tr').each(function(){
$elements=$(this).find('input, select option:selected');
});
var jsArr=$.makeArray($elements); //DOM elements array
答案 1 :(得分:0)
您可以尝试这样的事情。实施非常简单直接。
<table>
<tr>
<td><label>Row1</label></td>
<td><input type="text"></input></td>
<td><select><option>1</option><option>2</option></select></td>
</tr>
<tr>
<td><label>Row2</label></td>
<td><input type="text"></input></td>
<td><select><option>1</option><option>2</option></select></td>
</tr>
</table>
<br>
<input type="button" value="Get Data"/>
<div id="values"></div>
var values;
$("input:button").click(function()
{
values = "";
$("table tr").each(function()
{
$(this).find("td").each(function(index)
{
if($(this).find("label").text() != undefined)
values += $(this).find("label").text() + ";";
if($(this).find("input").val() != undefined)
values += $(this).find("input").val() + ";";
if($(this).find("select option:selected").text() != "")
values += $(this).find("select option:selected").text() + ";";
});
});
values = values.replace(/\;;/g,";");
$("#values").text(values);
});