簡體   English   中英

jQuery - console.log()返回一個元素,但我無法訪問它

[英]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 

DEMO

在您的情況下,數據是一個字符串,而不是一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM