3 回答
TA贡献1780条经验 获得超5个赞
您需要在函数外部定义变量,以防止每次调用函数时都初始化它,试试这个:
var IDarr = [];
function UpdBttn(ct){
var array = document.getElementById('array').innerHTML;
IDarr.push(ct);
document.getElementById('array').innerHTML = IDarr;
alert(IDarr.length);
}
TA贡献1820条经验 获得超2个赞
我不确定您要实现的目标,但您可能会执行以下操作:
function UpdBttn(ct){
var array = document.getElementById('array').innerHTML;
var IDarr = array.split(',');
IDarr.push(ct);
document.getElementById('array').innerHTML = IDarr.join(',');
alert(IDarr.length);
}
TA贡献1883条经验 获得超3个赞
innerHTML返回一个字符串。因此,当您使用var array = document.getElementById('array').innerHTML;它检索数组时,它是单个字符串。所以你的数组中有一个字符串元素,在推送另一个元素后它变成了两个。
const button = document.querySelector('button');
button.addEventListener('click', function() {
const divContent = document.querySelector('#array').innerHTML
const idArr = [divContent];
console.log(idArr);
idArr.push('lorem');
document.getElementById('array').innerHTML = idArr;
// The length will be same
console.log(idArr.length);
});
<div id="array">Item1, Item2</div>
<button>Click Me</button>
我不太确定你的innerHTML(注意 - 如果你只需要标签之间的内容,更好地使用textContent)的外观。但是您需要将textContent字符串从字符串转换为数组。
const button = document.querySelector('button');
button.addEventListener('click', function() {
const divContent = document.querySelector('#array').innerHTML
const idArr = [...divContent.split(',')];
console.log(idArr);
idArr.push('lorem');
document.getElementById('array').innerHTML = idArr;
console.log(idArr.length);
});
<div id="array">Item1,Item2</div>
<button>Click Me</button>
添加回答
举报