我正在编写一个测试,我想点击列表中的第二项并检查某些内容是否已更改。
我有一个项目符号列表元素:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
我尝试了以下(元素是包含整个列表的angular元素):
var li = element.find('li');
li.triggerHandler('click'); //Clicks all elements
li[1].triggerHandler('click'); //Error: li[1].triggerHandler is not a function
这些都不起作用。第一次尝试点击所有项目,第二次尝试抛出错误。
任何想法如何只触发点击第二项?
答案 0 :(得分:4)
triggerHandler
仅适用于jQuery(或内置jqLite)元素。 element.find
返回一个jQuery元素(li
),但li[1]
is a DOM node,而不是jQuery包装元素。
您可以使用element.find('li:eq(1)')
(如果使用jQuery)或element.find('li').eq(1)
(使用内置jqLite)。