Как перебрать таблицу для значений выпадающих меню? - PullRequest
2 голосов
/ 18 декабря 2011

Я хочу получить значения для 3-й и 4-й ячейки каждой строки, где они содержат выпадающие меню.Я пробовал разные способы, но мой код, похоже, не перебирает строки таблицы.Я могу получить значения для первого ряда, но не для остальных.Для таблицы нет фиксированного размера строки, так как пользователь сможет добавлять и удалять их.

Я поместил значения в отдельные массивы, но вместо массива, содержащего, скажем, [10, 20]он содержит [10, 10], поскольку он просто дублирует значения первой строки.

Вот мой код, который у меня есть:

function calculate(){
    var len = document.getElementById(arguments[1]).rows.length;
    var cMenus = [];
    var gMenus= [];
    for(var j = 1; j<len; j++){
        for(var i = 2; i<arguments.length; i++){
            var c = document.getElementById(arguments[2]);
            var g = document.getElementById(arguments[3]);

            cMenus[a] = c.options[c.selectedIndex].value;
            gMenus[a] = g.options[g.selectedIndex].value;   
        }
        a++;
    }

<button type="button" onclick="calculate('text','course', 'credits', 'grade')">Calculate</button>

HTML-код для первого выпадающего меню:

<table id="course" summary="add/remove course details" width="350px" border="1">

    <td>
        <select name="credits" id="credits">
            <option value="10">10</option>
            <option value="20">20</option>
        </select>   
    </td>...

Я пытался добавить j к аргументам или поместить его в «[]», но, похоже, ничего не работает.Я не думаю, что платформа, которую я использую, поддерживает jQuery, поэтому помощь была бы очень полезна для использования Javascript.

1 Ответ

1 голос
/ 18 декабря 2011

Теперь все понятно ... у вас есть тдс и коробка выбора внутри.Ниже код будет перебирать каждую ячейку таблицы и может дать вам выбранное значение в поле выбора,

$(".grid").find("td").each(function(i){
   //alert("This is "+parseInt(i+1)+"th TD");
   alert($(this).find("select").val());
 });

Если вы хотите выбрать все / перикулярный столбец, используйте код ниже

 $(".grid tr").each(function(i){
   colValues[i] = $('tr:nth-child('+(i+1)+')>td:nth-child(1)').html();
 });

подробнее читайте http://www.amitpatil.me/table-manipulation-with-jquery/

...