#id child $ (this) - PullRequest
       6

#id child $ (this)

1 голос
/ 24 декабря 2011

Я прошу прощения за грязный скрипт и теги, я только начинающий. Я хочу выделить текст в 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>

Ответы [ 3 ]

2 голосов
/ 24 декабря 2011

Чтобы передать второй параметр селектору 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);
});
1 голос
/ 24 декабря 2011

Вы просто неправильно указали кавычки:

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

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

0 голосов
/ 24 декабря 2011

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

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