¿Por qué esto no imprime el texto del lapso, "Apple"?
<label class="search-recipe-chkbox fruitLabel"> <input type="checkbox" class="checkbox check-box-mob-filters check-box-desktop" id="12DSKT" name="Apple" value="12"> <span class="checkmark"></span> <span class="ingredient-label">Apple <span class="recipe-count" id="12numDSKT">(1)</span></span> </label> for (var checkbox of checkboxes) { if (checkbox.checked == true) { console.log($(checkbox.id).siblings('.ingredient-label').text()); } } checkboxes de verificación son solo todas las casillas de verificación (entrada) en el formulario y dado que Apple está marcado.
Gracias
Verifique checkbox.id - en console.log
Necesita tener un # en el frente:
for (var checkbox of checkboxes) { if (checkbox.checked == true) { console.log($('#'+checkbox.id).siblings('.ingredient-label').text()); // like this } }Editar
Aquí hay una mejor solución según lo dicho por Teemu. Solo checkbox de verificación también funciona:
for (var checkbox of checkboxes) { if (checkbox.checked == true) { console.log($(checkbox).siblings('.ingredient-label').text()); // like this } }Hay varias razones por las que esto podría ocurrir, sin embargo, aquí está mi solución a su problema.
for (var checkbox of checkboxes) { if (checkbox.checked) { var val = checkbox.parentElement.querySelector('.ingredient-label').textContent; console.log(val); } }También puede usar - console.log($("[id]").siblings('.ingredient-label').text());