У меня довольно сложное приложение чата, и в одном и том же окне происходит несколько панелей чата, записей чата, отправки чата и т. Д.Сначала я собирался сделать что-то вроде ....
<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">
... и т. Д. (Конечно, это значительно упрощается, они будут разделены на отдельные элементы, видимости и т. Д.)когда они нажимают на .chatsubmit, он получает идентификатор этого и находит последние два символа для идентификатора чата.Это создает некоторые проблемы, так как это потребовало бы переписывания, если идентификаторы изменили длину, и кажется мне просто не элегантным.
Затем я вспомнил функцию .data () в 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'), равными 42 ...
var ID = $(event.target).data('id'); // Sets it to 42
var chattext = ...
И здесь я сталкиваюсь с проблемой.Как мне найти, какой элемент DOM соответствует классу chattext и данным ('id') из 42?Есть ли какой-нибудь простой способ, или мне нужно искать в каждом .chattext тот, у которого есть идентификатор 42?Или есть другой простой способ сделать это?
Я действительно рассматривал возможность того, что у контейнера есть идентификатор, который, я думаю, мог бы сделать это?немного легче получить.Но если это сработает, это может иметь дело с вещами и в других контейнерах, делающих это не долгосрочным решением.
Редактировать: Буквально через несколько секунд после публикации, я нашел это: http://james.padolsey.com/javascript/extending-jquerys-selector-capabilities/ которая включает в себя информацию о расширении селектора для данных.Так что я попробую это, и тем временем, это совершенно безрассудный способ справиться с этим?