我正试图找到所有具有以'。'开头的id
的行。和一些信件。当我用这个字符串调用getElementsByIdStartsWith时,即使我可以看到(并检查)它们,也不会返回任何行。以子串开头的行
我的错误在哪里?
getElementsByIdStartsWith: function (optionSymbolRoot) {
var idArr = [];
var trs = document.getElementById("tr");
for(var i=0; i<trs.length; i++)
{
var s = trs[i].id;
if(true == s.startsWith(optionSymbolRoot))
idArr.push(trs[i]);
}
return idArr;
},
ToggleRow : function(rootId) {
var s = ".";
var dottedSymbol = s.concat(rootId);
//process.stdout.write(dottedSymbol);
var rows = this.getElementsByIdStartsWith(dottedSymbol);
rows.forEach(function(row)
{
if (row.style.display == "") {
row.style.display = "none";
}
else {
row.style.display = "";
}
});
},
对于初学者 “开头”, 'document.getElementById'返回一个具有指定id的单个元素。您可能正在寻找['getElementsByTagName'](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName) – Hamms
您确定它是'getElementbyById'而不是'getElementsByTagName'吗? –
'row.style.display'可以有多个值,所以在切换时像':'这样更好地测试'row.style.display = row.style.display =='none'? '':'none''。 – RobG