2012-02-15 60 views
0

我想使用jQuery制作下拉建议框。我有一个看起来像这样的函数:第一次尝试使用jQuery:卡住get()错误

function onChoiceSelected(index){ 
    var item = $("#suggestionBox li").get(index); 
    alert("inner html: "+item.html()); 
    currentSuggestionInput.val(item.html()); 
    hideSuggestions(); 
} 

由于某些原因,get函数正在停止执行。例如,如果我将其替换为.first(),则一切正常。

我在做什么错?

后续问题:

  • 有一些方法,看看有什么错误发生,而不是仅仅有沉默的失败?
  • 我正在运行萤火虫,但我从来没有看到任何错误或类似的东西。任何人都知道一篇关于如何为这个东西建立适当的开发环境的好文章?

回答

3

get方法返回指定索引处的DOM节点。由于你试图调用一个jQuery方法,它会失败。

eq方法应该做你想做的。它会和你的get调用有相同的效果,但它会返回一个jQuery对象而不是DOM节点本身。

4

要使用eq()而不是get()

var item = $("#suggestionBox li").eq(index); 
+0

我认为这个问题是有关使用该版本获取的 - http://api.jquery.com/get/ – 2012-02-15 20:39:10

+0

@BrianHoover你抓我之前,我链接到正确的版本,我抓住了谷歌没有关注它的第一个结果。 :) – epascarello 2012-02-15 20:44:11

1

你应该看到在萤火虫控制台的错误。

您还可以在firebug中使用console.log(index)等工具,以及直接从控制台屏幕运行javascript。

你得到什么值的索引?

0

做得一样

function onChoiceSelected(index){ 
    var item = $($("#suggestionBox li").get(index)); 
    alert("inner html: "+item.html()); 
    currentSuggestionInput.val(item.html()); 
    hideSuggestions(); 
}