我已經動態創建了span標籤並附加到div。現在我想獲得它的ID,我選擇並刪除它。這就像jquery tagit。下面我使用這個,但它不工作。當我點擊特定的跨度時,查看id可以獲得的信息。如何獲得span的id並使其不顯示任何動態生成的?
$('span').on('click', function (e){
alert(e.target.Id);
});
我已經動態創建了span標籤並附加到div。現在我想獲得它的ID,我選擇並刪除它。這就像jquery tagit。下面我使用這個,但它不工作。當我點擊特定的跨度時,查看id可以獲得的信息。如何獲得span的id並使其不顯示任何動態生成的?
$('span').on('click', function (e){
alert(e.target.Id);
});
你並不需要一個id
(和span
可能就沒有之一),你已經有了一個對元素的引用:this
。這是標準的jQuery行爲。 (事實上,它是橫跨你可以掛鉤事件,而jQuery的過的各種方式的標準。)
所以
$('span').on('click', function() {
$(this).remove(); // Removes the one that was clicked
});
(或者說,是的,添加e
背部和使用e.target
:$(e.target).remove();
)
回覆您的評論:
我使用的代碼通過給予警告一試但是,點擊事件不會觸發。
這表明span
S IN的問題不存在運行代碼的時候,所以你最終不會鉤住他們的click
事件。
爲了解決這個問題,你可能想要做一個委託處理程序:在開發工具中,右鍵單擊這些跨度之一,並找到一個共同的祖先,他們有確實存在作爲你的代碼運行時的感覺。 (在最壞的情況下,這可能是document
,但通常它更好地範圍的東西得更緊了。)然後:
$('selector-for-that-ancestor-element').on('click', 'span', function() {
$(this).remove(); // Removes the one that was clicked
});
詳見on
。另外,如果span
有任何識別特徵(如class
或某個屬性),則可能需要將其包含在上面的委派選擇器中以更具體。
我嘗試使用該代碼通過提供警報也但點擊事件不發射。 – Vicky
@Vicky:恩,那將是一個*不同的問題。我已經更新了答案。 –
好吧,其實我已經創建了這個跨度動態使用jQuery ... – Vicky