jQuery脚本返回空数组

时间:2017-05-26 13:51:05

标签: javascript jquery html arrays soundcloud

我正在尝试返回SoundCloud上标有“电子”的歌曲的href链接。

我的剧本应该做的是,它搜索SoundCloud为我的流中的歌曲生成的列表项,如果歌曲有“电子”标签,则它会抓取href链接,链接到该特定歌曲。然后它遍历列表项;为我生成一系列链接。

我相信我的代码是正确的,但是使用Chrome的Javascript控制台,我将返回一个空数组。

这是我的剧本:

// ==UserScript==
// @name         jQuery for SoundCloud
// @namespace    jQueryForSoundCloud
// @description  This userscript returns the href link of all songs tagged 'Electronic'
// ==/UserScript==

// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
  var script = document.createElement("script");
  script.setAttribute("src", "http://web.archive.org/web/20161221181738/http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
  script.addEventListener('load', function() {
    var script = document.createElement("script");
    script.textContent = "(" + callback.toString() + ")();";
    document.body.appendChild(script);
  }, false);
  document.body.appendChild(script);
}

// the guts of this userscript
function main() {
    var href = $('li.listItems .spanClass:contains(Electronic)').map(function() {
        return $(this).parent('a').attr('href')
    }).get();

    console.log(href)
}

// load jQuery and execute the main function
addJQuery(main);

将此代码与JSFiddle一起使用,并生成具有完全相同布局的测试HTML文档,我能够返回一个数组;但是,使用带有SoundCloud的JS控制台,我将返回'[]'并且未定义。

您认为我做错了什么,我该怎么做才能解决我遇到的这个问题?

提前致谢。

编辑:当我在JSFiddle提供的Javascript窗口上按CTRL + ENTER时,我的代码仅适用于JSFiddle;返回一个数组,其中包含值。如果我在加载脚本的情况下在Chrome的JS控制台中按CTRL + ENTER,则返回一个空数组。怎么了?

0 个答案:

没有答案