Я пытаюсь найти все строки с 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' возвращает один элемент с указанным идентификатором. Вы, вероятно, ищете ['getElementsByTagName'] (https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByTagName) – Hamms
вы уверены, что это' getElementbyById', а не 'getElementsByTagName'? –
'row.style.display' может иметь несколько значений, поэтому лучше тестировать« none »при переключении, например:' row.style.display = row.style.display == 'none'? '': 'none''. – RobG