很抱歉,如果这个问题可能听起来很愚蠢,但我收到了一个我无法理解的错误。我在onRendered中有以下代码:
Template.displayItem.onRendered(function(){
if ($('div.item')[0]) {
console.log('First item found!');
$('div.item')[0].hide();
}
});
现在我可以在控制台中看到正确的输出"First item found!"
- 这意味着Jquery选择器正在工作,它在DOM中找到了元素,但是.hide()
Jquery方法没有被执行而且我是收到以下错误消息:
Exception from Tracker afterFlush function:
TypeError: $(...)[0].hide is not a function
我不确定导致此行为的原因。有没有人遇到类似的错误?
答案 0 :(得分:2)
请尝试使用$('div.item').first().hide()
。选择器返回的数组将包含DOM对象,这些对象不附加jQuery方法(如hide
)。相反,first将返回正确的jQuery
对象。
答案 1 :(得分:0)
使用$(this).hide()
shiny-server
答案 2 :(得分:0)
您的错误是因为$('div.hide')[0]
是普通节点,而不是jquery对象。
您应该使用this.$('div.hide').first().hide()