найти текст, содержащийся в div, и получить его дочерний флажок ID

0

Я пытаюсь написать сценарий, который получает идентификатор из элемента флажка и что-то с ним делать. Проблема в том, что я не могу настроить таргетинг флажков по значению, поскольку он сгенерирован из запроса mysql.

Вот как выглядит html для флажков:

<div class="cat_checkbox cat_unchecked">
     <input id="r_c136" type="checkbox" value="36" name="r_c1[]">
     Sample
</div>
<div class="cat_checkbox cat_unchecked">
     <input id="r_c131" type="checkbox" value="31" name="r_c1[]">
     Text1
</div>

И вот код, который мне удалось написать (я все еще изучаю java-скрипт и jQquery). То, что я пытаюсь сделать, это указать js, чтобы выбрать тот, который содержит "Text1", и найти флажок внутри него, получить его идентификатор, а затем добавить проверочную ссылку на элемент.

Но вместо этого он выбирает первый div, который находит флажок внутри и проверяет его независимо от значения внутри.

 $( "#click" ).click(function() {


        if ($( "div:contains('Text1')" ))
                        {
                        id = $("div:contains('Text1')").find("input[type='checkbox']").attr("id")+"";
                        alert(id);

                        $("#"+id).prop("checked", !($("#"+id)).is(':checked'));
                        }

        });
       });

Любая помощь будет одобрена. Спасибо.

Теги:
checkbox

1 ответ

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

Используйте $("div:contains('Text1')").length вместо $("div:contains('Text1')")

Измените свой код как

$("#click").click(function () {
    if($("div:contains('Text1')").length) {
        var checkbox = $("div:contains('Text1')").find("input[type='checkbox']"); //Find Checkbox here
        checkbox.prop("checked", !checkbox.is(':checked'));
    }
});

DEMO

Измените свой код как

$("#click").click(function () {
    var checkbox = $("div:contains('Text1')").find("input[type='checkbox']");
    if (checkbox.length) {
        checkbox.prop("checked", !checkbox.is(':checked'));
    }
});

Обновлено DEMO

  • 1
    Да или просто $ ("div: содержит ('Text1') input [type = 'checkbox']")
  • 0
    По какой-то причине, когда я использую этот код, и утверждение верно: «div: Содержит ('Text1'). Он выбирает все мои флажки
Показать ещё 4 комментария

Ещё вопросы

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