如何遍历表行以获取所有元素值?

时间:2015-10-21 17:38:35

标签: javascript jquery html

我正在创建一个基于代码的表,该代码将创建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>')
 }
 }

2 个答案:

答案 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);
});

http://jsfiddle.net/yqr6zgo6/