我正在尝试查找所有以query = [dict(zip(['ID', 'FirstName', 'LastName'], row[:1] + row[1].split('*'))) for row in cursor.fetchall()]
开头的行以'开头。'和一些信件。当我用这个字符串调用getElementsByIdStartsWith时,我没有返回任何行,即使我可以看到(并检查)它们。
我的错误在哪里?
id
答案 0 :(得分:1)
函数getDocumentById
只会提供一个项目,因为ids
应该是唯一的。如果您想要获得这种行为,我建议使用类而不是ID,或者如上面评论getElementByTagName
中所述。
答案 1 :(得分:0)
您也可以使用querySelectorAll函数
document.querySelectorAll('#id');
// This will return a NodeList with all elements that match the criteria.
function (optionSymbolRoot) {
var idArr = [];
var trs = document.querySelectorAll("tr");
for(var i=0; i<trs.length; i++)
{
var s = trs[i].className;
if(true == s.startsWith(optionSymbolRoot))
idArr.push(trs[i]);
}
return idArr;
}
答案 2 :(得分:0)
document.getElementById
获取具有指定id属性的单个元素。要获取网页上的所有<tr>
代码,您可以使用getElementsByTagName
或querySelectorAll
。
var rows = document.getElementsByTagName('tr');
//OR
var rows = document.querySelectorAll('tr');
第二种方法更灵活,因为它接受任何有效的CSS选择器,包括标记名称.classes
和#ids
,但速度稍慢。
答案 3 :(得分:0)
您可以使用querySelectorAll
和“以”CSS3 attribute selector: attr^="str"
document.querySelectorAll('tr[id^="str"]')
NodeList
需要转换为Array
function rowsIdStartsWith(optionSymbolRoot){
var selector = 'tr[id^="' + optionSymbolRoot + '"]'
var selected = document.querySelectorAll(selector)
return [].slice.call(selected)
}