以子字符串开头的行

时间:2017-02-14 22:40:04

标签: javascript node.js

我正在尝试查找所有以query = [dict(zip(['ID', 'FirstName', 'LastName'], row[:1] + row[1].split('*'))) for row in cursor.fetchall()] 开头的行以'开头。'和一些信件。当我用这个字符串调用getElementsByIdStartsWith时,我没有返回任何行,即使我可以看到(并检查)它们。

我的错误在哪里?

id

4 个答案:

答案 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>代码,您可以使用getElementsByTagNamequerySelectorAll

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)
}

https://jsfiddle.net/ak3jxrLg/