Javascript 如何在从数组中为ID设置羽化后增加ID

Javascript 如何在从数组中为ID设置羽化后增加ID,javascript,jquery,Javascript,Jquery,我有一段数组数据,如: $array = { "sections" : { "H": { "name": "dummy", "html": "<div id="dummy">d</div>" } } } 现在我想要的是:点击按钮后,html显示出来(正常工作),每次点击时id虚拟值都会增加 默认情况下,它是: <div id="dummy">d</div&g

我有一段数组数据,如:

$array = {
    "sections" : {
        "H": {
            "name": "dummy",
            "html": "<div id="dummy">d</div>"
        }
    }
}
现在我想要的是:点击按钮后,html显示出来(正常工作),每次点击时id虚拟值都会增加

默认情况下,它是:

<div id="dummy">d</div>
d
第一次保持不变时:

<div id="dummy">d</div>
d
但在第二次点击时,它变成:

<div id="dummy--1">d</div>
d
第三次单击时:

<div id="dummy--2">d</div>
d
等等

$array={
“章节”:{
“H”:{
“name”:“dummy”,
“html”:“d”
}
}
}
$(函数(){
$('#cm')。单击(函数(事件){
$htmlData=$array[“sections”][“H”][“html”];
console.log($htmlData);
});
})


单击我
您需要跟踪变量中的单击计数:
计数器
每次单击时,您都要增加此计数器并相应地更改html

var计数器=0;
$array={
“章节”:{
“H”:{
“name”:“dummy”,
“html”:“d”
}
}
}
$(函数(){
$('#cm')。单击(函数(事件){
$htmlData=$array[“sections”][“H”][“html”];
console.log($htmlData);
计数器++;
$array[“sections”][“H”][“html”]=“d”
});
})


单击me
使用一个计数器变量,然后在第二次单击parse the HTML并更新id属性,然后使用jQuery返回HTML

$array={
“章节”:{
“H”:{
“name”:“dummy”,
“html”:“d”
}
}
}
$(函数(){
//保存单击次数的计数器
var计数=-1;
$('#cm')。单击(函数(事件){
$htmlData=$array[“sections”][“H”][“html”];
//检查第二次单击的计数值
如果(++计数>0)
//如果不是第一次单击,请解析html并生成jQuery对象
$htmlData=$($htmlData).attr('id',函数(i,v){
//更新属性值
返回v+'-'+计数
//从DOM对象获取html内容
})[0]。outerHTML
console.log($htmlData);
});
})

单击我
如果您希望每次单击时您的id都是“dummy1”“dummy2”,只需在其中添加一个计数器,如下所示

var i=0;
$(function(){
    $('#cm').click(function(event) {
        i++;
        $htmlData = $array["sections"]["H"]['html']="html": "<div id=\"dummy"+i+"\">d</div>"
       console.log($htmlData);
    });
})
var i=0;
$(函数(){
$('#cm')。单击(函数(事件){
i++;
$htmlData=$array[“sections”][“H”][“html”]=“html”:“d”
console.log($htmlData);
});
})
$array={
“章节”:{
“H”:{
“name”:“dummy”,
“计数器”:0,
“html”:“d”
}
}
}
$(函数(){
$('#cm')。单击(函数(事件){
var$arr=$array[“sections”][“H”],
$name=$arr.name,
$counter=$arr.counter,
$htmlData=$arr.html,
$id;
如果($counter>0){
$id=$name+“--”+$counter;
}否则{
$id=$name;
}
log($htmlData.replace(“{id}”,$id));
$array[“sections”][“H”][“counter”]=++$counter;
});
})


单击我
在每次单击时更改id值如何?仅当我需要相同的代码悬停或放下时,单击才起作用event@user7791702:代替
。单击(function()
使用
。在('click mouseover',function(){
非常感谢您,您的代码非常有用,但并非出于我的目的再次感谢Seiya
var i=0;
$(function(){
    $('#cm').click(function(event) {
        i++;
        $htmlData = $array["sections"]["H"]['html']="html": "<div id=\"dummy"+i+"\">d</div>"
       console.log($htmlData);
    });
})