Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jQuery中单击具有数据属性的LI的子级?_Jquery - Fatal编程技术网

如何在jQuery中单击具有数据属性的LI的子级?

如何在jQuery中单击具有数据属性的LI的子级?,jquery,Jquery,我希望jQuery(模拟)单击一个数据属性为product的LI中的单选按钮。下面的代码不起作用。任何帮助都将不胜感激 var clicky = 1234; var selector = 'li[data-product="' + clicky + '"].radio'; jQuery(selector).trigger('click'); 您需要显示实际的HTML,因为根据DOM情况可能会略有不同,但是您的所有选择器都在同一个元素上操作,而不是在一个元素及其子体上操作。只需在选择器之间添加

我希望jQuery(模拟)单击一个数据属性为product的LI中的单选按钮。下面的代码不起作用。任何帮助都将不胜感激

var clicky = 1234;
var selector = 'li[data-product="' + clicky + '"].radio';

jQuery(selector).trigger('click');

您需要显示实际的HTML,因为根据DOM情况可能会略有不同,但是您的所有选择器都在同一个元素上操作,而不是在一个元素及其子体上操作。只需在选择器之间添加一个空格,它们就是后代选择器

尝试以下方法:

var clicky = 1234;
var selector = 'li[data-product="'+clicky+'"] .radio';

jQuery(selector)[0].click();  // Trigger native click event

基本上,您在
.radio
之前缺少一个空格。当前,您正在尝试单击子体上的LI

或者可能

var selector = 'li [data-product="'+clicky+'"].radio';

如果按钮包含数据(在
LI
之后缺少空格)。

如果是动态元素,请使用
委托
事件
绑定。如果元素存在于DOM中,则可能会重复您拥有的内容。你对代码有什么特别的问题吗?查看HTML可能有助于我们发现问题。您的描述表示层次结构,但您的选择器假定
数据产品
,以及
.radio
类都位于
LI
元素上。试着按照下面的例子使用后代选择器,当你问这样的问题时,请发布你的HTML:)我已经处理好了:jQuery(选择器).children(“输入[type=radio]”。单击();执行与选择器相同的操作(仅更长)。下次也请提供HTML:)
var selector = 'li [data-product="'+clicky+'"].radio';