![](/img/trans.png)
[英]JavaScript can't get access to a custom data attribute (console.log returns null)
[英]jQuery - console.log() returns an element but I can't access it
我碰巧有一個超級愚蠢的問題而且我被卡住了。
我做console.log(數據),我得到了這個:
<a href='http://www.someurl.com'>caption</a>
問題是如何獲得此鏈接“href”屬性。
我完全不知道為什么,但這些不起作用:
data.text()
== Uncaught TypeError:undefined不是函數(應該是:caption)
$('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>
}
使用jQuery,你可以做類似的事情:
var data = "<a href='http://www.someurl.com'>caption</a>";
var link = $(data).attr('href');
它將動態創建您的DOM元素,然后您就可以獲得屬性href。
您應該首先找出data
類型。 為此,您可以使用JavaScript內置函數typeof(data)
。
它不是一個jQuery對象。 這就是它未定義的原因。 首先, 創建一個jQuery對象 。
var _videourl = $(videourl);
console.log(_videourl.text());
console.log(_videourl.attr('href'));
// caption (index)
// http://www.someurl.com
在您的情況下,數據是一個字符串,而不是一個jQuery對象,因此沒有jQuery的方法(如text
)。
如果您確定data
是包含鏈接的字符串,則可以使用正則表達式來提取鏈接,如下所示:
var match = data.match(/href='(.*)'/g);
url = match && match[1];
console.log(url);
或者,您可以從字符串創建jQuery對象。 但是,如果你只是想獲得網址,這是一個更昂貴的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.