0

我有一个已经使用了一段时间的 JQuery 代码,但是今天我遇到了一个障碍——这个障碍以数组输入的形式出现。

<div id="primary">   //oopse this one contains the survey info
<input type="radio" name="quest[]" value="yes">   //was typing fast didnt realize i typed checkbox meant radio
<input type="radio" name="quest[]" value="no">
</div>
<div id="idnum">   // this one shows only if yes is selected
blah blah blah
</div>

所以输入发送到 query[] 对我来说合乎逻辑的事情是不使用数组 - 但这不是一个选项。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>

  $(document).ready(function () {
    $("#quest[] selected").change(function (e) {
      if ($(this).val() == "Yes") {   //if query[] = Yes then run following
        $("#idnum").hide();            //hide div id=idnum
      }
      else {     //if it no longer shows yes then run following
        $("#idnum").show();    //show div id=idnum
          }     
    });
  });

array[] 在此数组下还有其他值用于其他问题,我如何解决这个问题以专注于数组中的特定输入 - 每个 div 都有不同的 id,如果需要,我确实有能力找到 array[number] .

抱歉修复了一些东西并注释了一点

我不知道是否有可能,但是否有可能找到在特定列表中列出的值为“是”的

4

3 回答 3

1

我真的不明白你想做什么,但听起来你只需要这样的东西:

$("[name^=quest][value=yes]").change(function () {
   $("#idnum").toggle();
});

..但我有很多问题。为什么要让他们同时检查“是”和“否”?

于 2012-08-17T17:21:52.740 回答
0

使用 # 代表 id 的 quest[] 是名称

的CSS选择器将是

$('[name="quest[]"]')

那就是说我不确定您要做什么

找到检查的 quest[]/s 将是:-

$('[name="quest[]"]').find(':checked')
于 2012-08-17T17:21:08.067 回答
0

jsFiddle 演示

// to grab them by name starting with "quest[" the rest will be dynamic you said
$('[name^="quest["]').on('change', function () {
    if ($(this).attr('value') === 'yes') {
        $(this).closest('div').hide();
    }
});

如果我正确理解了这个问题,并且您试图隐藏最近的父母<div>并隐藏它,如果他们选择是。

于 2012-08-17T17:21:18.427 回答