在Angular/JavaScript中以编程方式触发单击列表中的单个元素
我正在写一个测试,我想点击列表中的第二项,检查是否有变化 我有一个项目符号列表元素:在Angular/JavaScript中以编程方式触发单击列表中的单个元素,javascript,angularjs,unit-testing,Javascript,Angularjs,Unit Testing,我正在写一个测试,我想点击列表中的第二项,检查是否有变化 我有一个项目符号列表元素: <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> 这些都不管用。第一次尝试单击所有项目,第二次尝试抛出错误 你知道如何只触发点击第二项吗?triggerHandler只适用于jQuery(或内置jqLite)元素elemen
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
这些都不管用。第一次尝试单击所有项目,第二次尝试抛出错误
你知道如何只触发点击第二项吗?
triggerHandler
只适用于jQuery(或内置jqLite)元素element.find
返回jQuery元素(li
),但li[1]
,而不是jQuery包装的元素。
您可以使用
element.find('li:eq(1)
(如果您使用jQuery)或element.find('li').eq(1)
(使用内置jqLite)。为什么不简单地用ng click将click处理程序绑定到第二个元素呢?我是。这是测试代码,我想在其中触发对单个元素的单击,以检查ng click中的代码是否按预期工作。元素.find
在jqLite中“仅限于按标记名查找”。更新了答案,并对此进行了澄清。
var li = element.find('li');
li.triggerHandler('click'); //Clicks all elements
li[1].triggerHandler('click'); //Error: li[1].triggerHandler is not a function