jQuery - console.log()返回一个元素但我无法访问它

时间:2014-05-02 22:57:02

标签: javascript jquery

我碰巧有一个非常愚蠢的问题而且我被卡住了。

我做console.log(数据),我得到了这个:

<a href='http://www.someurl.com'>caption</a> 

问题是如何获得此链接&#34; href&#34;属性。

我完全不知道为什么,但这些都不起作用:

data.text() ==未捕获的TypeError:undefined不是函数(应该是:标题)

$('a',data).attr('href') == undefined(应该是:http://www.someurl.com

也许这不是字符串,而是对象或其他东西?怎么检查?我的JS看起来像这样:

 window.send_to_editor = function(data) {
      var videourl = data;
      console.log(videourl.text()); // Uncaught TypeError: undefined is not a function
      console.log(videourl);  // <a href='http://www.someurl.com'>caption</a>
    }

4 个答案:

答案 0 :(得分:1)

使用jQuery,你可以做类似的事情:

var data = "<a href='http://www.someurl.com'>caption</a>";
var link = $(data).attr('href'); 

它将动态创建您的DOM元素,然后您就可以获得属性href。

答案 1 :(得分:1)

您应首先了解data的类型。为此,您可以使用JavaScript内置函数typeof(data)

答案 2 :(得分:0)

它不是jQuery对象。这就是它未定义的原因。首先,create a jQuery object

var _videourl = $(videourl);
console.log(_videourl.text());
console.log(_videourl.attr('href'));
// caption (index)
// http://www.someurl.com 

DEMO

答案 3 :(得分:0)

在您的情况下,data是一个字符串,而不是jQuery对象,因此没有jQuery的方法(如text)。

如果您确定data是包含链接的字符串,您可以使用正则表达式来提取链接,如下所示:

var match = data.match(/href='(.*)'/g);
url = match && match[1];
console.log(url);

或者,您可以从字符串创建jQuery对象。但如果你只是想获得网址,这是一个更昂贵的操作。