javascript - 如何忽略 HTML 匹配中的隐藏对象?

标签 javascript jquery match

我正在尝试匹配可见对象的文本,但忽略不可见的文本。顺便说一句,我需要 HTML 代码。

这是我的 codepen .

这是我的 HTML:

<div class="main">
   <div class="a">Hello</div>
   <div class="hid">Hello</div>
   <div class="b">Hello</div>
   <div class="hid2">Hello</div>
   <div class="c">Hello</div>
   <div class="hid3">Hello</div>
   <div class="hid4">Hello</div>
</div>

我的CSS:

.hid, .hid2, .hid3, .hid4{
   display: none;
}

我的 JavaScript:

var regEx = /Hello/g;

var main = $('.main').html();

var matches = main.match(regEx);

console.log(matches);

实际上我想排除不可见元素而不将它们从页面中删除。我想要这些 HTML 代码的结果:

<div class="a">Hello</div>
<div class="b">Hello</div>
<div class="c">Hello</div>

我不想删除隐藏的对象,因为我将以交互方式使用它们。我只是想将他们排除在比赛之外。我们可以使用 jQuery。

从现在开始谢谢你。

最佳答案

您可以尝试使用 :visible 选择器,例如 $('.main div:visible')

var visible = $('.main div:visible').map((_,i) => i.outerHTML).get();
console.log(visible);
.hid, .hid2, .hid3, .hid4{
   display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
   <div class="a">Hello</div>
   <div class="hid">Hello</div>
   <div class="b">Hello</div>
   <div class="hid2">Hello</div>
   <div class="c">Hello</div>
   <div class="hid3">Hello</div>
   <div class="hid4">Hello</div>
</div>

关于javascript - 如何忽略 HTML 匹配中的隐藏对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453020/

相关文章:

javascript - JS 函数在 if 语句中的奇怪行为,为什么?

java - 在文本中查找单词

javascript - Chrome 中的单个应用程序

JavaScript 函数调用脱糖

javascript - 如何通过ajax调用将图像和数据作为两个不同的参数发送?

sql - Oracle 其中 'TEXT' 按一定百分比匹配某些内容

excel - 我在 A 列中有一些地址格式不正确,我想将状态复制到单独的单元格中

javascript - 如何返回带有内联开关的 jsx 元素?

javascript - 如何停止Javascript函数的执行?

javascript - 克隆数组?