我有一個非常複雜的聊天應用程序正在進行,並且有多個聊天窗格,聊天條目,聊天提交等在同一窗口中進行。起初,我打算做類似的東西....是否可以使用.data()作爲搜索條件?
<input type="text" class="chattext" id="chattext-42">
<input type="text" class="chattext" id="chattext-93">
<input type="button" class="chatsubmit" id="chatsubmit-42">
<input type="button" class="chatsubmit" id="chatsubmit-93">
...等等(當然這是大大簡化了,他們會在不同的div,獨立能見度等),所以,當他們點擊一個.chatsubmit,它會得到這個ID並找到聊天ID的最後兩個字符。這提出了一些問題,因爲如果ID改變了長度,它將需要重寫,並且對我來說似乎僅僅是不雅觀的。
我纔想起jQuery中的。數據()便利...我想,也許我能做到這一點更是這樣的:
<input type="text" class="chattext"> ... and add a .data("id", 42) to this one
<input type="button" class="chatsubmit"> ... and add a .data("id", 42)
所以,當他們點擊chatsubmit,它得到的ID,並然後找到具有該ID的chattext並對其進行處理。但看看文檔,我沒有看到用這種方法搜索的簡單方法。例如,假設在這種情況下,事件的目標是用42的數據(「ID」)的chatsubmit ...
var ID = $(event.target).data('id'); // Sets it to 42
var chattext = ...
在這裏,我遇到了麻煩。如何找到哪個DOM元素與一個chattext類和一個42的數據('id')匹配?有沒有簡單的方法,或者我必須搜索每個.chattext的ID爲42的那個?還是有另一種簡單的方法呢?
我確實考慮過容器div具有ID的可能性,我認爲這會使它成爲ID?稍微容易得到。但是,如果這能起作用,它也可以處理其他集裝箱業務中的事情,這不是一個長期的解決方案。
編輯:發佈後幾秒鐘,我發現這個:http://james.padolsey.com/javascript/extending-jquerys-selector-capabilities/其中包括有關將選擇器擴展爲數據的信息。所以我會嘗試一下,在此期間,這是一種完全蠻幹的處理方式嗎?
出於某種原因,正則表達式很少出現在我身上。所以我想你已經說服了我。謝謝! – Andrew 2010-06-18 16:20:45