简单方案:
<div class="question_wrapper">
<input type="text" class="new_question">
<input type="checkbox" class="radioinput" name="new_questionActive[]">
</div>
我正在尝试弄清楚如何达到此无线电按钮的特定值,每当我按下一个按钮时,它会动态添加。
到目前为止的JavaScript:
$('.new_question').each(function() {
var active = $(this).parent().next(".radioinput").attr("checked") ? 1 : 0;
}
由于某种原因,它总是产生" 0"作为值。我尝试与closest
合作,试图用siblings
使用next
。
我需要下一个.radioinput
,直接遵循先前的.new_question
。
我想念或做错了什么?
更新1
所建议的,我将attr
更改为prop
,所以现在看起来确实撒谎:
var active = $(this).parent().next(".radioinput").prop("checked") ? 1 : 0;
但仍然总是0
as :checkbox
是当前元素的兄弟姐妹,因此您需要将.next()
与当前元素一起使用。
var active = $(this).next(".radioinput").prop("checked") ? 1 : 0;
console.log(active)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="question_wrapper">
<input type="text" class="new_question">
<input type="checkbox" class="radioinput" name="new_questionActive[]">
</div>
或者,您可以使用.find()
来定位后代,而不是.next()
var active = $(this).parent().find(".radioinput").prop("checked") ? 1 : 0;
console.log(active)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="question_wrapper">
<input type="text" class="new_question">
<input type="checkbox" class="radioinput" name="new_questionActive[]">
</div>