首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取包含字符串的id

获取包含字符串的id
EN

Stack Overflow用户
提问于 2014-02-21 23:35:16
回答 5查看 804关注 0票数 2

我试图得到所有包含给定字符串的id。不知道完整的id,只知道部分id。Id看起来是这样的:

代码语言:javascript
复制
<td class="item" id=shipping-1 align="left">$1.00</td>
<td class="item" id=shipping-2 align="left">$6.49</td>
<td class="item" id=shipping-3 align="left">$8.50</td>
// etc...

正如您所看到的,“送货-”是一个常量,但附加的编号在页面加载时是动态的(取决于哪些发送选项对接收地址有效)。

我对javascript不是很好,但显然在这里使用getElementById()是行不通的。

我想避免做一些笨拙的事情,比如在得到一个“未定义的”之前,让id处于循环状态。

我需要这样的东西:getElementsContainingString('shipping-')

我需要得到这些id的数组,然后读取innerHTML并确定哪个最便宜。这必须通过javascript动态地完成,因为我们不能控制服务器端的页面来执行这个逻辑。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-21 23:39:25

代码语言:javascript
复制
document.querySelectorAll('[id^="shipping-"]');

不需要jQuery。这为id="shipping-[wildcard]"做了一个CSS选择器。MDN:查询选择器MDN:属性选择器.这适用于IE 8+,如果您希望支持更低的,可以使用多填充。

票数 3
EN

Stack Overflow用户

发布于 2014-02-21 23:39:10

如果使用JQuery,可以使用以下代码:

代码语言:javascript
复制
var cells = $("td[id^=item]");

括号[]告诉您接受所有以字符串"item“开头的id属性的td。

票数 0
EN

Stack Overflow用户

发布于 2014-02-21 23:39:30

试着看看这个答案:基于部分字符串的Javascript getElementById

然后,您会想要使用他们的副手的例子:http://jsfiddle.net/xwqKh/1/

他们使用了以下代码(不是我自己的):

代码语言:javascript
复制
document.findElementsWithIdLike = function(prefix) {
    var results = [];
    findChildrenWithIdLike(document.body, prefix, results);

    return results;
};

window.findChildrenWithIdLike = function(node, prefix, results) {
    if (node && node.id && node.id.indexOf(prefix) == 0) {
        //match found
        results.push(node);
    }

    //check child nodes
    for (var i = 0; i < node.childNodes.length; i++) {
        var child = node.childNodes[i];
        var childResult = findChildrenWithIdLike(child, prefix, results);
        if (childResult) {
            results.push(childResult);
        }
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21947328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档