2014-05-02 43 views
0

我碰巧有超級愚蠢的問題,我卡住了。jQuery - console.log()返回一個元素,但我不能訪問它

我做的console.log(數據)和我得到的正是這一點:

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

的問題是如何得到這個鏈接「href」屬性。

我絕對不知道爲什麼,但這些不工作:

data.text() ==遺漏的類型錯誤:未定義是不是一個函數(應該是:字幕)

$('a',data).attr('href') ==未定義(應: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

問題是它是一個字符串。你調用的方法只能用於jQuery對象,而不是字符串。 – Barmar

回答

1

使用jQuery,你可以做這樣的事情:

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

它將創建動態的DOM元素,那麼你就可以得到您的屬性HREF。

+0

天哪,我很笨我一直在試圖將它轉換爲一個對象,但它不會工作。它現在起作用,所以我責怪錯字。謝謝 :) – Wordpressor

1

您應該首先了解,data是什麼類型。要做到這一點,你可以使用JavaScript內建函數typeof(data)

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

0

在你的情況下,數據是一個字符串,而不是一個jQuery對象,因此不具備的jQuery的方法(如text)。

如果您確信data是包含一個鏈接字符串,可以使用正則表達式來提取像這樣的鏈接:

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

或者,你可以從你的字符串創建一個jQuery對象。但是,如果你只是想獲得網址,這是一個更昂貴的操作。

相關問題