Более элегантный способ (не) проверки в jQuery?

0

Я попытался полностью сфотографировать этот checkbox check/uncheck фрагмент кода в jQuery, но он не имел никакого успеха. Вот код jQuery/JavaScript:

$.ajax({
                type: "GET",
                url: "check.xml",
                cache: false,
                dataType: "xml",
                success: function(xml) {
                    $(xml).find("check").each(function(){
                        $(xml).find("todo").each(function(){
                            var state = $(this).attr("state");
                            if (state == "true") {
                                document.getElementById($(this).attr("id")).checked = true;
                            } else {
                                document.getElementById($(this).attr("id")).checked = false;
                            }
                        });
                    });
                }
            });

Вероятно, очень возможно сделать document.getElementbyId(blablabla).... используя только jQuery. Я попробовал это:

($(this).attr("id")).prop("checked", true)

Но это действительно не так, как ожидалось. Какие-либо предложения?

  • 0
    stackoverflow.com/questions/426258/...
  • 0
    Я попробовал это, но, как прокомментировал, это не сработало.
Теги:
checkbox

2 ответа

0
Лучший ответ

Вам не хватает "#" в селекторе:

var id = '#'+ $(this).attr("id");

Затем вы можете сделать один лайнер вместо "if":

$(id).prop("checked", (state == "true"));
  • 0
    Вот что я имею в виду под элегантностью. Спасибо.
1

Вам нужно сделать это так (обратите внимание на символ # чтобы получить элемент из идентификатора - те же правила, что и селектор CSS) -

var id = $(this).attr("id");
$('#'+ id).prop("checked", true);
  • 1
    Разве это не просто $(this).prop('checked',true) ?
  • 2
    @ D.Kasipovic Нет, Op переходит по xml, а не по фактическим элементам DOM
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню