javascript - 如何根据自定义属性从 innerHTML 中删除某些元素?

标签 javascript html

是否可以从 innerHTML 中删除自定义属性 data-promo 值为 1 的链接?按钮的输出结果onclick应该是:

上午 10:00

上午 11:00

中午 12:00

如有任何帮助,我们将不胜感激。

您可以找到我迄今为止尝试过的 Fiddle here .

function day(item) {
  var data = item.getAttribute('data-value');
  document.getElementById('time-wrap').innerHTML = document.getElementById(data).innerHTML;
}
<div style="display:none;" id="2017_12_9">
  <a class="even" onclick="times(this)" data-promo="0">10:00am</a><br>
  <a class="even" onclick="times(this)" data-promo="1">10:30am</a><br>
  <a class="even" onclick="times(this)" data-promo="0">11:00am</a><br>
  <a class="even" onclick="times(this)" data-promo="1">11:30am</a><br>
  <a class="even" onclick="times(this)" data-promo="0">12:00pm</a><br>
</div>
<button class="datecurrentselected" onclick="day(this)" data-value="2017_12_9">Dec 09, 2017</button>
<div id="time-wrap"></div>

最佳答案

您可以使用 CSS 选择器,即引用您的自定义属性(即 [data-promo="1"] )并结合 .querySelectorAll() 的选择器并使用 .forEach() 遍历返回的列表删除那些匹配选择器的元素。例如:

function day(item) {
  var data = item.getAttribute('data-value');
  document.getElementById('time-wrap').innerHTML = document.getElementById(data).innerHTML;
  document.querySelectorAll('[data-promo="1"]').forEach(function(element) {
    element.parentNode.removeChild(element);
  });
}
<div style="display:none;" id="2017_12_9">
  <a class="even" onclick="times(this)" data-promo="0">10:00am</a><br>
  <a class="even" onclick="times(this)" data-promo="1">10:30am</a><br>
  <a class="even" onclick="times(this)" data-promo="0">11:00am</a><br>
  <a class="even" onclick="times(this)" data-promo="1">11:30am</a><br>
  <a class="even" onclick="times(this)" data-promo="0">12:00pm</a><br>
</div>
<button class="datecurrentselected" onclick="day(this)" data-value="2017_12_9">Dec 09, 2017</button>
<div id="time-wrap"></div>

有一件事让我有点困扰,那就是 <br> <a> 之外的标签标签,有效地创建空行。你可以使用一些有创意的 CSS 技巧或 Javascript 来删除它们,但我建议调整你的 HTML 结构(即将它们放在链接标签中)。但是,您的电话。

关于javascript - 如何根据自定义属性从 innerHTML 中删除某些元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442945/

相关文章:

javascript - Jquery认为表是空的

JavaScript:单击时如何更改元素的可见性?

html - 一个好的 google.maps 地理定位 api?

javascript - 如何在猫头鹰旋转木马的屏幕上显示上一个和下一个 slider ?

html - 当我们将鼠标悬停在一个元素上并将其字体设置为粗体时,我们如何避免抖动

javascript - document.getElementById ('textbox' ).value 停止工作

javascript - 为什么在函数中使用此对象会导致 Javascript TypeError (undefined) 引发?

javascript - 从 JSON 创建树

javascript - jQuery:在模糊时隐藏上下文菜单

javascript - @: in . cshtml的使用方法