jquery - 查找具有特定字符串的所有 id

标签 jquery

我试图获取页面上所有链接的所有 href 标签,并将它们放入一个数组中。我有以下代码,但是当我检查控制台时,出现错误 Uncaught TypeError: Object has no method 'attr' 我不确定从这里该去哪里。有什么想法吗?

代码

function videoLinks() {
    var videoLinks = $("a[id^=a_l_]").each(function() {
        var linkArray = jQuery.makeArray(videoLinks);
        console.log(linkArray.attr("href"));
    });
}

最佳答案

$.makeArray 返回 native JavaScript 数组,而不是 jQuery 对象。 native JavaScript 数组没有像 .attr() 这样的 jQuery 方法。这开始有意义了吗?

通过videoLinks$.makeArray根本没有意义,因为您要么传递函数 videoLinks ,或局部函数 videoLinks已经是一个 jQuery 对象。所以,我认为这更符合您想要做的事情:

function videoLinks() {
    $("a[id^=a_l_]").each(function() {
        console.log(this.href);
    });
}

这将记录 href每个 <a> 的属性具有 id 的元素以 'a_l_' 开头。也许您想构建一个由这些 href 组成的数组属性而不是记录它们。然后你会使用 .map() .get() :

function videoLinks() {
    var hrefs = $("a[id^=a_l_]").map(function() {
        return this.href;
    }).get(); // ← note the .get() call
}

my ultimate goal is to return one of the links at random

那么你就快到了。 Just get a random element from the hrefs array :

function videoLinks() {
    var hrefs = $("a[id^=a_l_]").map(function() {
        return this.href;
    }).get(); // ← note the .get() call

    var randHref = hrefs[Math.floor(Math.random() * hrefs.length)];
    console.log(randHref);
}

关于jquery - 查找具有特定字符串的所有 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183770/

相关文章:

jQuery :not selector

javascript - 如何为 jquery-bootgrid 设置工具提示

javascript - 有间隔的循环停止作用

javascript - 如何通过从下拉列表中进行选择来启动 Sunburst 中的可缩放性

javascript - 如何在插件调用中插入点击功能?

javascript - jQuery 选择器只选择 php 循环结果末尾的最后一个 id

php - 使用基于设备宽度的 PHP 变量替换图像源值

javascript - 缺少 FullCalendar 标题按钮

javascript - 为什么 js 不能在 cordova 中工作?

jquery - 选择下拉框选项时交换类