найти одного потомка jquery - PullRequest
2 голосов
/ 16 марта 2012

У меня проблемы с чем-то, что, кажется, должно быть довольно легко сделать с JQuery.В основном у меня есть таблица на моей странице.В каждой строке таблицы есть флажок и ячейка для суммы.Я пытаюсь написать функцию, которая будет проходить через каждую строку и проверять, не установлен ли флажок.Если это так, это добавит сумму к моей общей сумме, чтобы я мог показать ее внизу моей страницы.По какой-то причине я не могу найти свой флажок.Ниже приведен HTML-код на странице.

<div class="BillAccordian">
<h3><A href="#">Past Due Bills - Total $ 1047.62 </A></h3>
<div>
    <table style="background-color:Red">


    <tr>
        <td>
            <input class="RowSelector" id="BillInfo_PastDueBills_0__Selected" name="BillInfo.PastDueBills[0].Selected" type="checkbox" value="true" />
            <input name="BillInfo.PastDueBills[0].Selected" type="hidden" value="false" /> 
        </td>
    <td>
        RE 
    </td>
    <td>
        334 
    </td>

    <td>
        1047.62 
    </td>
    <td>
        Bill Number 20121 
    </td>
</tr> 
        </table>
    </div>
</div> 

Вот скрипт JQuery, который я сейчас использую, чтобы попытаться выполнить это

$('input.RowSelector').click(function () {
        var sum = 0;
        alert("1");
        // we want to sum up the values of all input.sum elements that are in the same tr
        // as this one
        $('tr').each(function (e) {
            var val;
            alert($(this).find(".RowSelector")[0].is(':checked'));
            if ($(this).closest("input.RowSelector").val() == true) {
                alert("3");
                //                val = parsefloat($(i).find(".BillAmount").val());
                //            
                //                if (isNaN(val) || val === undefined) {
                //                    return;
            }

            //                sum += val;
        });
        //            $(this).find('#SelectedTotal').val(formatDollar(sum));
    });
}); 

Многое закомментировано прямо сейчаспотому что я просто пытаюсь завладеть селектором, мне нужно продолжить.Используя оповещение в функции я ничего не получаю.Я думаю, что это не нравится [0], который я добавил, но используя find без него, я ничего не получал.Я проверил свой $ this.html, чтобы убедиться, что у меня был правильный элемент, и он вернул всю строку таблицы с флажком внутри, поэтому я в этой точке озадачен.Может кто-нибудь сказать мне, что мне не хватает?

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

Вы могли бы сделать

$('tr').each(function (e) {
        var val = 0;

        if ($('input:checkbox:checked', this).length > 0){
             val = parseInt($('td:eq(3)', this).text(), 10);
        }


        sum += val;
    });
0 голосов
/ 16 марта 2012

Используйте это, чтобы найти свой флажок:

$('input.RowSelector').click(function() {
    var sum = 0;
    $('tr').each(function(e) {
        var val;
        if ($(this).find(".RowSelector:checked").val() == "true") {
            alert("3");

        }
    });
});​
0 голосов
/ 16 марта 2012
$('tr').each(function (e) {
   if ($(this).find('input:checked').length > 0)
   {
      // Do calculation
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...