首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery自动完成。在select时,警告其值在建议的

jQuery自动完成。在select时,警告其值在建议的
EN

Stack Overflow用户
提问于 2011-10-13 03:38:35
回答 2查看 2.9K关注 0票数 1

I jQuery电影搜索的自动补全插件。每部电影都有一个ID,它来自于IMDb的id,现在我解析这个ID的方法是从PHP中获取的,并用class="imdbID“将其封装在一个跨度内。所以它看起来像这样:

代码语言:javascript
复制
<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的值。

如果我使用这个方法:

代码语言:javascript
复制
select:function(a,b){
        var bbbb = $(".imdbID").text();
        alert(bbbb);
}

我得到所有跨度的值如下所示:

所以我的问题是,如何才能只获取所选自动补全值的.imdbID?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-13 04:07:50

参考你关于PHP代码的另一个问题,我会这样做(请持保留态度,我不知道PHP):

代码语言:javascript
复制
$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事件上:

代码语言:javascript
复制
$("input").autocomplete({
    /* snip */
    select: function (event, ui) {
        alert(ui.item.imdbid); // <-- alert the imdbid property
    }
});
票数 2
EN

Stack Overflow用户

发布于 2011-10-13 03:51:07

该回调接收两个参数function(event, ui)。e.originalEvent应该给出触发select事件的单击事件,以及它的目标ul

代码语言:javascript
复制
$(e.originalEvent.target).find(".imdbID").text(); //Gets you the IMDB key
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7745577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档