2015-07-07 1 views
0

Код:Uncheck флажок по идентификатору в JQuery

$(function() { 

$("input[type=checkbox]").on("click", function() { 
deptsSelected = '<div id = "selected_'+this.id+'"> '+ $("label[for='" + this.id + "']").text() + '<span id="delete">X</span></div>'; 
     $("#tabs").append(deptsSelected); 

}); 



    $(document).on("click", "#delete", function(e) { 
      id = $(this).parent().attr('id') 
      e.preventDefault(); 
      $(this).parent().remove(); 
      var checkid = $("#"+id.slice(9)); 
      checkid.prop("checked", false); 
    }); 

Код выше должен снимите конкретный Checkbox, когда пользователь щелкает на конкретном Div. Div динамически генерируется JQuery, поэтому я сделал здесь, чтобы взять идентификатор нового сгенерированного Div и использовать функцию среза, чтобы взять идентификатор флажка, который я хочу снять. Как я могу снять флажок, который я хочу, используя id?

ответ

2

Вы забыли поставить префикс # для идентификатора или . для класса

Пусть это идентификатор

var checkid = $('#' + id.slice(9)); 
checkid.prop("checked", false); 

или класс использовать как

var checkid = $('.' + id.slice(9)); 
checkid.prop("checked", false); 
1

Используйте идентификационный префикс:

var checkid = $('#' + id.slice(9)); 

Изменить эту часть:

var checkid = $(id.slice(9)); 
1

здесь мы идем:

$("input[type=checkbox]").on("click", function() { 
deptsSelected = '<span id="delete" data-checkbox="'+this.id+'">X</span></div>'; 
     $("#tabs").append(deptsSelected); 
}); 

    $(document).on("click", "#delete", function(e) { 
      var id = $(this).parent().attr('id'); 
      var checkboxID = $(this).attr('data-checkbox'); 
      e.preventDefault(); 
      $(this).remove(); 
      $('#'+checkboxID).attr('checked', false); 
    }); 

http://jsfiddle.net/uure20xe/

1

Вот что я сделал:

$("input[type=checkbox]").on("click", function() { 
    deptsSelected = '<div id = "selected_'+this.id+'"> '+ $("label[for='" + this.id + "']").text() + '<span class="delete">X</span></div>'; 
    $("#tabs").append(deptsSelected); 

}); 

$(document).on("click", ".delete", function(e) { 
    var parent = $(this).parent(); 
    var id = parent.attr('id') 
    parent.remove(); 
    var checkid = $('#'+id.replace("selected_", "")); 
    checkid.prop("checked", false); 
}); 

Ваш код все еще есть некоторые проблемы, как: если я сниму флажок, он добавит div, но это не проблема в ваш вопрос.

Здесь a jsfiddle