Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JQuery中生成动态ID而不使用For循环?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在JQuery中生成动态ID而不使用For循环?

Javascript 如何在JQuery中生成动态ID而不使用For循环?,javascript,jquery,Javascript,Jquery,表格中有7个问题,编号为1.1至1.4和2.1至2.3,答案为Radio(ID:#Radio_1.1和#Radio_1.2)和textarea(ID:#textarea_1.1,#textarea_1.2) 问题相互依赖,如问题1.4回答如果在收音机中选择“是”,则将禁用问题2.2的文本框。此外,需要在单击和加载期间实现此功能 以下是我目前在JQuery/Javascript中生成问题id的方法: for(var tabNumber=1;tabNumber<=2;tabNumber++)

表格中有7个问题,编号为1.1至1.4和2.1至2.3,答案为Radio(ID:#Radio_1.1和#Radio_1.2)和textarea(ID:#textarea_1.1,#textarea_1.2)

问题相互依赖,如问题1.4回答如果在收音机中选择“是”,则将禁用问题2.2的文本框。此外,需要在单击和加载期间实现此功能

以下是我目前在JQuery/Javascript中生成问题id的方法:

for(var tabNumber=1;tabNumber<=2;tabNumber++) {
    var questions=0;
    if(tabNumber==1) questions=4;
    if(tabNumber==2) questions=3;
    for(var decimalNumber=1;decimalNumber<=questions;decimalNumber++){
       disableit(tabNumber+"\\."+decimalNumber,value); //This generate id of comment box like #textarea_1.1, #textarea_1.2 and radio also like #radio_1.1 and #radio_1.1 and even few classs like .Class_1.1 and .Class_1.2
    }
}
JQuery/Javascript中是否有其他方法可以帮助删除for循环并以另一种更简单的方式执行上述操作?任何能帮助我的正则表达式,比如.Class_u[1.1-1.9]等等,这样我就可以在一个或两个语句中应用东西

更新


每个问题排在一行。比如(1.1-你想要小鸟吗?是/否评论)(1.2-你想要小狗吗?是/否评论)。这四个分区中的每一个都是单独的分区,如1.1分区、问题分区、广播分区和评论分区。所以ID是分开的,正如前面所解释的。问题有混合依赖关系

试试看

示例:

$(selector).uniqueId();
HTML:

结果:

<div class="checked" id="ui-id-1">1</div>
<div class="checked" id="ui-id-2">2</div>
<div class="checked" id="ui-id-3">3</div>
<div class="checked" id="ui-id-4">4</div>
<div class="checked" id="ui-id-5">5</div>
<div class="checked" id="ui-id-6">6</div>
<div class="checked" id="ui-id-7">7</div>
<div class="checked" id="ui-id-8">8</div>
<div class="checked" id="ui-id-9">9</div>
<div class="checked" id="ui-id-10">10</div>
<div class="checked" id="ui-id-11">11</div>
<div class="checked" id="ui-id-12">12</div>
1
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
演示:

许多小部件需要为元素生成唯一的ID
.uniqueId()
将检查元素是否有id,如果没有,它将生成一个id并在元素上设置它。在一个元素上调用
.uniqueId()
是安全的,无需检查它是否已经有id。如果/当小部件需要在其自身之后清理时,
.removeUniqueId()
方法将从元素中删除id(如果它是由
.uniqueId()
添加的),如果没有id,则不使用id
.removeUniqueId()
能够巧妙地处理这一问题,因为生成的id的前缀为“ui id-”


Have元素有一个公共类。例如,
class=“question”
。然后,您可以使用
$(“.question”)
将所有目标锁定。如果它们有唯一的ID,请使用ID分别针对它们:
ID=“question-1.1”
$(“#question-1.1”)
。如果您不能使用ID,请分配两个类:
class=“question-question-1.1”
,然后您可以将
$(“.question”)
用于所有类,或者将
$(“.question-1.1”)
用于一个类。

每个问题都在一行中。比如(1.1-你想要鸟吗?是/否评论)(1.2-你想要动物吗?是/否评论)。这四个分区中的每一个都是单独的分区,如1.1分区、问题分区、广播分区和评论分区。所以ID是分开的,正如前面所解释的。由于这个问题相互之间存在混合依赖关系,所以不能为所有类声明一个类。如果再增加30个问题,则个人ID目标将不必要地增加代码。您已经有个人类(
Class_1.1
或类似类);ID匹配比类匹配快,所以如果
class_1.1
在页面上是唯一的,则最好转换为ID。在Radio div中,无法使用类。和在收音机中一样,我需要验证是否选择了一个禁用另一个,所以我只需要在ID上播放。所以这对我不起作用。对不起,你的叙述令人困惑。请考虑制作一个jsFoDelp来演示HTML结构,并详细描述你希望发生的事情。
<div class="checked">1</div>
<div class="checked">2</div>
<div class="checked">3</div>
<div class="checked">4</div>
<div class="checked">5</div>
<div class="checked">6</div>
<div class="checked">7</div>
<div class="checked">8</div>
<div class="checked">9</div>
<div class="checked">10</div>
<div class="checked">11</div>
<div class="checked">12</div>
$(document).ready(function () {
    $(".checked").uniqueId();
});
<div class="checked" id="ui-id-1">1</div>
<div class="checked" id="ui-id-2">2</div>
<div class="checked" id="ui-id-3">3</div>
<div class="checked" id="ui-id-4">4</div>
<div class="checked" id="ui-id-5">5</div>
<div class="checked" id="ui-id-6">6</div>
<div class="checked" id="ui-id-7">7</div>
<div class="checked" id="ui-id-8">8</div>
<div class="checked" id="ui-id-9">9</div>
<div class="checked" id="ui-id-10">10</div>
<div class="checked" id="ui-id-11">11</div>
<div class="checked" id="ui-id-12">12</div>