конкатенация строк внутри селекторов jquery - PullRequest
0 голосов
/ 04 февраля 2010

Я занимаюсь разработкой приложения на C #, ASP.NET, и у меня на странице много div-ов, каждый div является контейнером для сообщения чата, и у каждого div есть уникальный идентификатор: например,

"<div id='" + myMsgs[j].id_chat_message + "' style='padding: 10px;'>"

Итак, каждый div имеет одинаковый идентификатор на странице и в базе данных.

Теперь нужно найти какой-то div с помощью jquery, но это не работает

        for (var j = 0; j < myMsgs.length; j++) {
        findDiv = $('#<%= ' + myMsgs[j].id_chat_message + '.ClientID%>');
    }

я знаю, чтоМоя проблема заключается в конкатенации строк, но я не знаю, как ее решить.

Ответы [ 3 ]

1 голос
/ 04 февраля 2010

самый простой подход: добавить class -объект, к которому вы затем можете получить доступ через jQuery - например.

var messageBoxes = $('.mySpecialCssClass');

Теперь вы можете перебирать этот массив и делать что-то с jQuery / javaScript!

1 голос
/ 04 февраля 2010

Когда вы пытаетесь использовать серверные теги на странице aspx таким образом, вы говорите ASP .NET обрабатывать страницу во время рендеринга и заменять все эти теги соответствующими значениями или оценками. Поскольку вы пытаетесь динамически построить строку внутри тегов сервера с помощью JavaScript, ASP .NET не собирается обрабатывать эту строку, и в результате вы получите такой код:

$("#<%=id1.ClientID %>")

ASP .NET обрабатывает теги этого типа только при визуализации страницы (которая уже завершена), и она выполняется только на стороне клиента, поэтому это не сработает.

Вы должны просто сделать это:

for (var j = 0; j < myMsgs.length; j++) {
  findDiv = $('#' + myMsgs[j].id_chat_message);
}
1 голос
/ 04 февраля 2010

Согласно вашему коду "myMsgs" должен выглядеть примерно так (в javascript):

var myMsgs = [{"id_chat_message":"id1"},{"id_chat_message":"id2"},{"id_chat_message":"id3"}];

Что означает, что это позволит вам получить нужные дивы:

for(var j = 0, l = myMsgs.length; j < l; ++j){
    $("#" + myMsgs[j].id_chat_message);
}

Но, вероятно, есть лучший способ сделать то, что вы хотите.

Можете ли вы предоставить более подробную информацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...