我使用jQuery自动完成插件进行电影搜索。每部电影的ID均来自IMDb的ID。现在,我解析该ID的方式来自PHP,并用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?
谢谢
最佳答案
将您的其他问题引用给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
}
});