使用jQuery

时间:2015-08-01 19:36:02

标签: javascript jquery html laravel

有人知道如何在div中获取所有radiobuttons? div的id如下

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

我正在使用Laravel,因此我的想法是将值放在div中,然后放入类似

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

但是这不起作用,所以我想知道如何使用div中的所有radiobuttons进行内部循环。我认为。

我需要复制一组问题,然后才能进行验证,但只适用于第一组,第二组未经验证,我已检查每个单选按钮的id值并更改为previousid_2,并且问卷被克隆了。此外,我想知道如何在克隆调查问卷时重置值,因为如果您选择了“是”否,则在第二组中克隆它时,将选择这些结果并禁用字段。

3 个答案:

答案 0 :(得分:3)

你实际上是在问几件事。您的代码意味着您可以访问名为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 );

答案 1 :(得分:1)

您可以获取所有单选按钮并按照以下

进行迭代
od -An -N1 -i /dev/random

答案 2 :(得分:0)

使用Id非常简单 要获得以“任务”开头的所有元素,您应该使用:

$("[id^=quest]")

以“jander”结束那些结束

$("[id$=quest]")

完整的答案是

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

关键是如果你想要通配符类:( :(

 $("[class^=quest]")

就像

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

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

事实是你不需要它,每当你需要使用类获取元素列表时只需使用一个公共类:D  希望我帮助你好