JQuery Автозаполнение. При выборе, оповещение, значение которого находится в предложении - PullRequest
1 голос
/ 12 октября 2011

Я плагин автозаполнения jQuery для поиска фильмов.Каждый фильм получает идентификатор, который взят из идентификатора IMDb.Теперь способ, которым я анализирую этот идентификатор, взят из PHP и заключен в span с class = "imdbID".Вот так это выглядит примерно так:

<li>Movie title 1<span class="imdbID">tt345813</span></li>
<li>Movie title 1<span class="imdbID">tt346413</span></li>
<li>Movie title 1<span class="imdbID">tt789675</span></li>
<li>Movie title 1<span class="imdbID">tt185858</span></li>

и продолжается.Вот как это выглядит на реальном примере: http://www.screenr.com/aH0s

Теперь я хочу выбрать фильм и предупредить о значении imdbID.

Если я использую этот метод:

select:function(a,b){
        var bbbb = $(".imdbID").text();
        alert(bbbb);
}

Я получаю все значения диапазона следующим образом:

Итак, мой вопрос, как я могу получить только .imdbID выбранного значения автозаполнения?

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Ссылаясь на ваш другой вопрос по коду PHP, я бы сделал что-то вроде этого (, пожалуйста, возьмите немного соли, я не знаю PHP ):

$tmdb = new TMDb($api_key);
$json = json_decode($tmdb->searchMovie($_GET['term']));
$response = array();
$i=0;
foreach($json as $movie){
    if(!$movie->imdb_id || $movie->adult) continue;
    if($i >= 6) break;
    $response[$i]['value'] = $movie->name;
    $response[$i]['label'] = $movie->name . ' <small>(' . date('Y',strtotime($movie->released)).')</small><span><span> (' . $movie->imdb_id . ')';
    $response[$i]['imdbid'] = $movie->imdb_id;
    $i++;
}
echo json_encode($response);

Идея заключается в том, что вы добавляете imdbid в качестве свойства полезной нагрузки JSON, которую вы отправляете клиенту.

Затем выберите событие:

$("input").autocomplete({
    /* snip */
    select: function (event, ui) {
        alert(ui.item.imdbid); // <-- alert the imdbid property
    }
});
1 голос
/ 12 октября 2011

Обратный вызов получает два аргумента function(event, ui).e.originalEvent должен дать вам событие click, которое вызвало событие select, вместе с его целью ul.

$(e.originalEvent.target).find(".imdbID").text(); //Gets you the IMDB key
...