我碰巧有一个非常愚蠢的问题而且我被卡住了。
我做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>
}
答案 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
答案 3 :(得分:0)
在您的情况下,data是一个字符串,而不是jQuery对象,因此没有jQuery的方法(如text
)。
如果您确定data
是包含链接的字符串,您可以使用正则表达式来提取链接,如下所示:
var match = data.match(/href='(.*)'/g);
url = match && match[1];
console.log(url);
或者,您可以从字符串创建jQuery对象。但如果你只是想获得网址,这是一个更昂贵的操作。