#id дочерний элемент $(this)

Прошу прощения за корявый скрипт и теги, я только начинающий. Я хочу выбрать текст в div с классом «reserveAPickupAppointmentLocation». Этот div находится внутри $(this). $(this) — выбранная запись из многих. Соответствующая строка:

var location = $(".reserveAPickupAppointmentLocation, this").text();

Это возвращает местоположение из всех записей, а не только из $(this). Как получить только то, что я хочу?

Полная функция jquery:

   $(".reserveAPickupAppointmentRoommateAppointment").click (function() {
    if ($(this).hasClass("confirm")) {
    }
    else {
        $("img").remove(".confirmAppointment");
        $(".reserveAPickupAppointmentRoommateAppointment").removeClass("confirm");
        $(this).addClass("confirm");
        $(this).append("<img src=images/confirmAppointment.png class=confirmAppointment id=roommateAppointment>");
            $(".confirmAppointment").click (function() {
                $(".confirmAppointment").unbind("click");
                var location = $(".reserveAPickupAppointmentLocation, this").text();
                alert (location);
            });
    }
   });

соответствующая часть php

echo '<table>';
while ($row = mysql_fetch_array($result)) { 

echo
'<tbody class = "reserveAPickupAppointmentRoommateAppointment">
    <tr>
            <td>'
                .$row["name"].
            '</td>
            <td>
                <span class = "reserveAPickupAppointmentLocation">'
                    .$row["location"].
                '</span>
            </td>
            <td>
                <span class = "reserveAPickupAppointmentSubLocation">'
                    .$row["subLocation"].
                '</span>
            </td>
        </tr>
        <tr>
            <td>
                <span class = "reserveAPickupAppointmentStartTime">'
                .$row["startTime"].
            '</span>    - 
            <span class = "reserveAPickupAppointmentEndTime">'
            .$row["endTime"].
                '</span>
            </td>
            <td>
                <span class = "reserveAPickupAppointmentDate">'
                .$row["date"].
                '</span>
            </td>
        </tr>
    </tbody>';
}

echo '</table>

person radleybobins    schedule 24.12.2011    source источник
comment
@lotusH обновлен с помощью html ... Я знаю, что это грязный способ вернуть мои данные, у меня была дискуссия с кем-то ранее на этом форуме, но у меня еще не было возможности изменить это.   -  person radleybobins    schedule 24.12.2011
comment
и спасибо, что заставили меня опубликовать это, очищая его, я обнаружил ошибку ... Я неправильно написал местоположение 4 раза (вероятно, скопировал и вставил), это не работает с кодом ниже   -  person radleybobins    schedule 24.12.2011


Ответы (3)


Чтобы передать второй параметр селектору jQuery в качестве контекста для поиска, вам нужно сначала закрыть кавычки.

var location = $(".reserveAPickupAppointmentLocation", this).text();

НО

Значение this в обратном вызове клика изменится, поэтому вам нужно будет сохранить его заранее.

$(this).append("<img src=images/confirmAppointment.png class=confirmAppointment id=roommateAppointment>");
var self = this;
$(".confirmAppointment").click (function() {
    $(".confirmAppointment").unbind("click");
    var location = $(".reserveAPickupAppointmentLocation", self).text();
    alert (location);
});
person Adam Rackis    schedule 24.12.2011
comment
Это решение, которое, наконец, сработало, но мне также нужно было исправить еще одну опечатку, я несколько раз неправильно написал местоположение при неправильном копировании и вставке. Бьюсь об заклад, если бы я попробовал другие, я также был бы более успешным. - person radleybobins; 24.12.2011

Вы просто ошиблись в кавычках:

$(".reserveAPickupAppointmentLocaton", this).text();

this — это второй аргумент функции jQuery для указания контекста, он был у вас как часть селектора. Контекст — необязательный аргумент для jQuery.

person Paul    schedule 24.12.2011
comment
это возвращает мой URL, на самом деле, по какой-то причине - person radleybobins; 24.12.2011
comment
ой, я вставил это неправильно, он не отображается с URL-адресом, просто пустой, как и другие - person radleybobins; 24.12.2011

Попробуй это:

var location = $(".reserveAPickupAppointmentLocaton", $(this)).text();
person Ayman Safadi    schedule 24.12.2011