2014-02-21 43 views
0

我正在構建一個jQuery插件,它可以應用在像這樣的容器元素上。獲取元素的CSS選擇器,我的插件應用於

$('#container').myPlugin(); 

在這個插件中,我試圖從另一個頁面低谷.get()中得到相同的元素。

$.get('page.php', function(data) { 
    data = $.parseHTML(data); 
    data = $('<div/>').html(data); 

    data = data.find(myContainer); 

}, 'html'); 

問題是myContainer-變量。我需要應用於我的插件的CSS選擇器,有什麼方法可以得到它嗎?

我發現this解決方案,但它似乎相當複雜。也許有一個更簡單的解決方案,尤其是我的情況(插件不是對象)?!

我可以在我的插件中使用另一個選項來獲取選擇器,但我想避免它,因爲它會感覺爲用戶的信息翻倍。 (將插件應用於容器並在選項中引用它)。

回答

0

我會用data-*屬性:

<a href="/resource" data-target="#element"></a> 

然後你可以使用jQuery .data('target')方法您的插件上下文輕鬆讀取值。使用選擇器不是一個靈活的解決方案,有很多情況下邏輯會失敗。向元素添加有用/重要的屬性不會使標記變髒

+0

我覺得,我不太明白。如果我要爲我的容器添加一個'data'屬性,這需要用戶執行另一個操作,我不能從插件內部添加它,因爲我需要知道用於該元素的選擇器,我的插件已被應用。 – Afterlame

0

好吧,我想我找到了解決辦法:

var mySelector = $(this).selector 

似乎工作。


重要
.selector已棄用的jQuery 1.7和jQuery的1.9已被刪除。

+0

什麼是'.selector'? – isherwood

+1

請注意,'selector'屬性在jQuery 1.7中被棄用,並在jQuery 1.9中被刪除。 – undefined

+0

嗯,我在jQuery 1.11.0中使用它,它似乎工作。它是否已被棄用而沒有任何替代? – Afterlame