I 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?
谢谢
发布于 2011-10-13 04:07:50
参考你关于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有效负载的属性添加。
然后在select事件上:
$("input").autocomplete({
/* snip */
select: function (event, ui) {
alert(ui.item.imdbid); // <-- alert the imdbid property
}
});发布于 2011-10-13 03:51:07
该回调接收两个参数function(event, ui)。e.originalEvent应该给出触发select事件的单击事件,以及它的目标ul。
$(e.originalEvent.target).find(".imdbID").text(); //Gets you the IMDB keyhttps://stackoverflow.com/questions/7745577
复制相似问题