繁体   English   中英

使用jQuery捕获div中的所有单选按钮

[英]Catch all radiobuttons inside a div using jQuery

有人知道如何将所有单选按钮放入div中吗? div的ID如下

<div id="quest{{ $groups }}" class="quest">

我正在使用Laravel,因此我的想法是在div中获取值,并在jQuery中添加类似

 var radios = $("input[type='radio'][id^='quest'"+groups+"]");

但这是行不通的,所以我想知道如何在div中获取所有单选按钮,并使用.each进行内部循环。

我需要重复一组问题,然后才能进行验证,但仅适用于第一组,第二组未经验证,我已经检查了每个单选按钮的ID值并更改为previousid_2和调查表被克隆。 另外,我想知道在克隆调查表时如何重置值,因为如果您选择YES NO YES NO,那么在克隆调查表的第二组中,这些结果也会被选中,并且禁用字段也是如此。

您实际上是在要求几件事。 您的代码暗示您可以访问名为groups的变量中的当前组。 所以...

1)选择div内的所有无线电输入:

   var div = $("div#quest"+groups);
   var radiosBtns = div.find("input[type='radio']");

2)遍历它们,并对每个元素做一些工作:

var doSomeWork = function(i,radiobtn){
    console.log('the value of radio button #' + i ' is ' + radiobtn.value);
};
$.each(radioBtns,doSomeWork);

3)复制一组单选按钮:

var fromgroup = $("div#quest"+groups);
var togroup = fromgroup.clone();
var insertionPoint = $('body');
var toGroupId = 'questXXX';

// set the ID so it can be targetted 
togroup.prop('id',toGroupId);
// reset radio button values
togroup.find('input[type="radio"]').each(function(){
    this.prop('checked',false);
});
togroup.appendTo(insertionPoint);

4)在特定组上运行验证

var validateGroup = function(elements){
    // your validation logic goes here
    var isValid = false;
    $.each(function(){
        console.log( this.name, this.value );
    });
    return isValid;
};
// run the validation on the newly inserted group
var targetElements = $("#"+toGroupId).find("input[type='radio']");
var groupIsValid = validateGroup( targetElements );

您可以获取所有单选按钮并对其进行迭代,如下所示

$("input[type='radio'][id^='quest']").each(function(){
       // add your logic here
});

使用ID非常简单。要获取以“ quest”开头的所有元素,应使用:

$("[id^=quest]")

为了得到那些以“詹德”结尾的人

$("[id$=quest]")

完整的答案是

var radios = $("input[type='radio'][id^='quest']");

关键是如果要通配类:( :(

 $("[class^=quest]")

在像

<pre>
   <a class="btn quest primary">link</a>
<pre>

它不起作用,因此当您找到它时,您将需要一个更复杂的通配符,直到我为止:D

事实是,每当需要使用类获取元素列表时,都将不需要它,只需使用一个通用类即可:D希望我能对您有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM