【发布时间】:2018-01-05 05:03:16
【问题描述】:
我有一个页面,其中包含大约 100 个这样的 div。
<div id="ListItem_JBEEB_847">
<span title="-HD">
<span>F</span>
<span style="pointer-events: none;">-HD</span>
</span>
</div>
ID 有不同的编号。我正在尝试通过jQuery一一点击这个div/或垃圾邮件。所以,我做了一个这样的循环..
$('div').each(function(){
div = $(this).attr('id');
if(div){
if(div.includes('ListItem_JBEEB')){
get_div = jQuery("#" + div).trigger('click');
}
}
});
上面的代码应该可以工作,但由于某种原因它不能工作。它适用于样式和所有其他 DOM 操作,例如通过更改文本颜色
jQuery("#" + div).css({'color': 'red'}) 所以循环没问题,我也尝试使用 jQuery("#" + div).find('span').trigger('click') 来定位跨度,但没有任何反应。
顺便说一句:在网站上,如果您单击任何 div,会立即向您显示更多信息,但是没有任何变化,我不确定触发点击是否有效
【问题讨论】:
-
div 中有 2 个跨度,您是否有点击事件,您应该更具体地选择跨度
-
我不知道跨度是否触发了效果,但我只是点击了 div ......没有办法告诉我点击的是哪个元素..但我确实点击了div 并且它有效。如果跨度有填充,并且有一种清晰的方法可以将跨度与 div 分开,我将能够知道我正在点击哪个 el @gurradio
-
@adeneo 但我能够简单地创建一个测试 btn 一个新页面,并且能够通过
trigger()点击 btn ... -
我删除了那条评论,我不知道你在做什么,但同样,
trigger()不一定和点击一样,它只是触发与 jQuery 绑定的事件处理程序。跨度> -
作为旁注,您的整个代码都可以替换为
$('div[id^="ListItem_JBEEB"]').trigger('click')
标签: javascript jquery dom dom-manipulation jquery-events