如果你在javascript上只有部分名字,你能获得ElementsByName吗?

Amr*_*mra 9 html javascript

我有一个重复的表,其中元素的名称将是(例如'tdName_1''tdName_2'),我想知道是否有可能getElementsByName('tdName_').

PS:我不能使用Jquery.

提前致谢.

塞萨尔.

Tim*_*own 6

这是不可能的.我假设这个答案的其余部分是你感兴趣的元素是<td>s.如果是这样,那么您应该知道该name属性对<td>元素无效.

您必须手动创建匹配元素列表.如果您决定name仍然使用该属性(而不是在属性中添加类class),则以下内容将起作用:

var table = document.getElementById("your_table_id");
var tds = table.getElementsByTagName("td");
var matchingTds = [];

for (var i = 0, len = tds.length, td, tdName; i < len; ++i) {
    td = tds[i];
    tdName = td.getAttribute("name");
    if (tdName && tdName.indexOf("tdName_") == 0) {
        matchingTds.push(td);
    }
}
Run Code Online (Sandbox Code Playgroud)


Jen*_*enn 5

使用 vanilla javascript,您可以使用 querySelectorAll 方法:

document.querySelectorAll('[name^=tdName]')
Run Code Online (Sandbox Code Playgroud)

这应该适用于所有现代浏览器,包括 IE9 或更高版本(尽管我还没有测试过)。