在jquery

时间:2017-03-09 12:26:34

标签: jquery

简单方案:

<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;
}

由于某种原因,它总是产生&#34; 0&#34;作为价值。我尝试使用closest,尝试使用siblingsnext进行解决,但似乎没有任何效果。

我需要下一个.radioinput,后面跟着之前的.new_question

我错过了什么或做错了什么?

更新1

根据建议,我将attr更改为prop,所以现在看起来确实如此:

var active = $(this).parent().next(".radioinput").prop("checked") ? 1 : 0;

但仍然始终0

1 个答案:

答案 0 :(得分:1)

由于: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>