мой html:
<input type="checkbox" value="113" id="product_113" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_113">Samsung<label>
<br>
<input type="checkbox" value="114" id="product_114" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_114">Nokia<label>
<br>
<input type="checkbox" value="115" id="product_115" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_115">Apple<label>
<br>
<input type="checkbox" value="116" id="product_116" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_116">LG<label>
я просто хочу получить значение каждого ярлыка при проверке флажка. Я пробую это в jquery:
$('[name="product[parentid][childid][]"]').click(function(){
$('[name="product[parentid][childid][]"]:checked').each(function() {
alert($("label:for:product_"+this.value).html );
});
});
Вам нужно закрыть тег метки. использование
<label for="product_113">Samsung</label>
вместо
<label for="product_113">Samsung<label>
JavaScript
$('[name="product[parentid][childid][]"]').click(function () {
$('[name="product[parentid][childid][]"]:checked').each(function () {
alert($("label[for='product_" + this.value + "']").html());
//OR
alert($('label[for=' + this.id + ']').html());
});
});
Кроме того, я предлагаю вам использовать событие change
вместо click
Я думаю, что это короткий, читаемый и чистый
$('.chk_product_name').change(function(){
if (this.checked){ alert($('label[for='+this.id+']').text());}
});
Должен быть:
$('[name="product[parentid][childid][]"]').click(function () {
$('[name="product[parentid][childid][]"]:checked').each(function () {
alert($("label[for='product_" + $(this).val()+"']").html());
});
});
Вот гораздо более короткая версия: http://jsfiddle.net/Tq4C2/7/
$('[name="product[parentid][childid][]"]').click(function(){
alert($(this).next().text());
});
Тег <label>
не был закрыт.
попробуйте что-то подобное, FIDDLE
Также не забудьте закрыть тег 'label'
$('[name="product[parentid][childid][]"]').click(function () {
alert($('label[for=' + this.id + ']').html());
});
.change
вместо.click
чтобы найти событие-флажок.