首页 > 解决方案 > 按数据属性查找元素

问题描述

我在运行时填充了一个 div 的数据,我需要检查该元素是否存在。

我在 SO 中看到了一些关于如何做到这一点的提示。

我在 DOM 中有一些东西

<div id="messages">
 <div class="direct-chat-msg right" data-msg-id="true_5521971319071@c.us_AB57E3CC69662AC4059250385929DD72">
        <div class="direct-chat-info clearfix">
          <span class="direct-chat-name pull-right"></span>
        </div>
 </div>
</div>

现在,我需要测试元素是否存在。我尝试了下一个,但两者都不起作用:

document.querySelectorAll('[data-msg-id="true_5521999957988@c.us_26B99C7B58A653A4FFCFBD1DFF92498D"]').length>0

$("body").find(`[data-msg-id='${"true_5521999957988@c.us_26B99C7B58A653A4FFCFBD1DFF92498D"}']`).length>0

标签: javascriptjqueryhtml

解决方案


我看到你在true这里有一个前缀:使用正则表达式(而不是整个 ID)怎么样?

JS:

document.querySelectorAll('div[data-msg-id="^true"]') ? foo : bar;

jQuery:

$('body').find('div[data-msg-id="^true"') ? foo : bar;

我不知道您是否必须匹配确切的值,但这应该会有所帮助。当然,如果您有更多实例并且想要检查第一个,则必须相应地更改代码。


推荐阅读