请求不记录任何内容

时间:2015-05-24 18:15:32

标签: javascript jquery

这是我的代码:

$.get("http://www.roblox.com/catalog/", function(onWebsite) {
     console.log($(onWebsite).find('.name.notranslate')[0].attr("href"));
});

每当我运行它时,它都不会将任何内容记录到控制台,它只是说:" Object {readyState:1}"。但是,如果我删除了.attr(" href"),它就可以了。我的语法有问题吗?

3 个答案:

答案 0 :(得分:2)

由于.attr()是一个jQuery函数,你需要将它与jQuery对象一起使用。

使用

$(onWebsite).find('.name.notranslate').attr("href")

根据您当前的代码$(onWebsite).find('.name.notranslate')[0]将返回您没有.attr()方法的基础DOM元素。

您可以使用href属性或Element.getAttribute()方法

$(onWebsite).find('.name.notranslate')[0].href

OR

$(onWebsite).find('.name.notranslate')[0].getAttribute('href')

答案 1 :(得分:0)

也许试试:

$.get("http://www.roblox.com/catalog/", function(onWebsite) {
     console.log(onWebsite.find('.name.notranslate')[0].attr("href"));
});

onWebsite不能用jQuery选择器包装,因为它是从函数返回的。

答案 2 :(得分:0)

让我们尝试这种方法:

var a;
$.get("http://www.roblox.com/catalog/", function(onWebsite) {
     a = $(onWebsite).find('.name.notranslate')[0];
     console.log(a);
});

你会得到

<a class="name notranslate" href="/Headless-Horseman-item?id=134082613" title="Headless Horseman">Headless Horseman</a>

所以var a是带有href属性的HTML标签。 HTML标记没有jQuery方法 - 只从DOM中选择jQuery对象或“包装/选择HTML”

您可以:

  1. 参考.href获取href
  2. 在jQuery中包装a以获取:$(a).attr('href')
  3. 所以最终代码将是(变体1更好):

    var a;
    $.get("http://www.roblox.com/catalog/", function(onWebsite) {
             a = $(onWebsite).find('.name.notranslate')[0].href
             console.log(a);
        });
    

    或不创建临时变量

    $.get("http://www.roblox.com/catalog/", function(onWebsite) {
         console.log($(onWebsite).find('.name.notranslate')[0].href);
    });