Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 用Dojo重新编号div_Javascript_Dojo_Iteration - Fatal编程技术网

Javascript 用Dojo重新编号div

Javascript 用Dojo重新编号div,javascript,dojo,iteration,Javascript,Dojo,Iteration,我在S.O.上找到了一条类似于我这里需要的线索 上面使用的jQuery我们没有使用,所以我不知道如何将div重新编号的想法转化为Dojo 我继承了一个大规模的web项目,该项目广泛使用Dojo1.5。我完全理解到目前为止我对它的理解,但我有一个问题 我们有一个带有编号div的页面,我可以成功地从中删除div。不过我需要的是按顺序排列的div。下面是一个我需要重新划分的示例 <div id="filter_9_values_2_div"> <div id="filter_9_va

我在S.O.上找到了一条类似于我这里需要的线索

上面使用的jQuery我们没有使用,所以我不知道如何将div重新编号的想法转化为Dojo

我继承了一个大规模的web项目,该项目广泛使用Dojo1.5。我完全理解到目前为止我对它的理解,但我有一个问题

我们有一个带有编号div的页面,我可以成功地从中删除div。不过我需要的是按顺序排列的div。下面是一个我需要重新划分的示例

<div id="filter_9_values_2_div">
<div id="filter_9_values_1_div">
<div id="filter_9_values_4_div">

理想情况下,在我删除div的javascript例程中,我希望按顺序重命名这些div,使它们看起来像这样

<div id="filter_9_values_1_div">
<div id="filter_9_values_2_div">
<div id="filter_9_values_3_div">

有人知道我该怎么办吗?我知道如何成功地添加一个新的div并使其独特,但重写div的想法对我来说是一个完全的谜。和往常一样,我非常感谢你的帮助。珍妮

dojo.query('div').forEach(function(el, index){
   dojo.attr(el, "id", "filter_9_values_" + (index + 1) + "_div"); 
});

您可能希望使用更具体的内容作为查询,而不是仅使用“div”,如果您需要更通用的ID,则可以使用“filter\u 9\u values\u…\u div”您必须使用regexp或split来构建所需的字符串,但这应该让您了解如何迭代DOM元素集合,并对它们执行您可以想象到的任何操作。

谢谢Tom:唯一的问题是它会将我页面上的每个div都变成一个新的数字。我需要重新编号的是与“filter\u 9\u values\u(somenumber)\u div”匹配的div。知道我是怎么做到的吗?再次非常感谢你。。JW@JaneWilkie-正如我所写,您必须将选择器
dojo.query('div')
收紧到目标div,您需要的div是否具有特定类的公共父级?您可以使用类似于
dojo.query('.parentClass div')
的选择器,或者可以向它们添加一个类,以便可以使用类似于
dojo.query('div.className')
的选择器轻松捕获它们。基本上,dojo选择器的结构与CSS选择器的结构几乎相同!非常感谢!我在发布后不久就意识到了这一点。你已经得到了答案,我真的很感激。JW@JaneWilkie-您还可以在查询时提供一个节点作为第二个参数:
dojo.query(“div”,dojo.byId(“parentNodeId”)
。这将导致仅对该节点的子节点执行查询。