javascript函数与document.querySelectorAll加filter()可以'工作不正常
javascript function with document.querySelectorAll plus filter() can't work properly
我想用javascript去掉那些里面有<span class="verfied-badge">
的<tr>
。(请注意,我希望有一个解决方案,只有javascript,没有jquery)
HTML结构如下:
<tr class="project-description">
<td colspan="6">
<div class="project-desc-inner">
<div class="project-synopsis">
<p class="trunk8">This is an entry</p>
</div>
<div class="project-verification">
<span class="verfied-badge"> <~~~~~~~~~~ THIS SPAN
<span class="currency-symbol">$</span>
<span class="icon-tick"></span>
Verified
</span>
</div>
<div class="project-actions">
<a href="#">
<button class="btn">LOL</button>
</a>
</div>
</div>
</td>
</tr>
这是我所能想到的:
function showAlert()
{
document.querySelectorAll("tr.project-description").filter(document.getElementsByClassName("verfied-badge")).remove();
alert("Unwanted removed.");
}
我希望它能做的是,选择所有的tr.project-description
,然后从那些获得所有具有span.verfied-badge
的,如果它确实具有,则删除整个tr
但看起来,我一直在失败:(
希望有人能帮忙。
谢谢!
查找您关心的所有tr
元素,然后查看它们是否包含匹配的verified-badge
跨度。如果是,燃烧将其移除。
window.addEventListener('load', function() {
var projectDescriptions = document.querySelectorAll('tr.project-description'),
projectDescriptions = Array.prototype.slice.call(projectDescriptions);
projectDescriptions.forEach(function(el) {
if (el.querySelector('span.verfied-badge')) {
el.parentNode.removeChild(el);
}
});
});
我在从querySelectorAll
返回的NodeList
上调用了Array.prototype.slice
,因为querySelectorAll
不返回数组,而是返回NodeList
,这是JavaScript令人恼火(但很容易解决)的"类数组对象"之一。
相关文章:
- Javascript.getHours()工作不正常
- removeClass函数没有'工作不正常
- jQuery Ajax GET请求工作不正常
- Cordova ng路线工作不正常
- 更新属性工作不正常Meteor/MongoDB
- 为什么文本对齐:对;工作不正常
- Javascript作用域和Ajax调用;工作不正常
- JavaScript DOM insertBefore'工作不正常
- Angular Js布线工作不正常
- onmouseout函数工作不正常
- 承诺工作不正常
- JQuery.live()工作不正常
- Alloy UI文本区域工作不正常
- ng src工作不正常,但src工作正常
- 谷歌分析跟踪内部链接不正常工作的事件
- Canvas.toDataUrl(“image/png”)工作不正常
- JQuery `length`属性工作不正常.为什么?
- Javascript setInterval工作不正常
- javascript函数与document.querySelectorAll加filter()可以'工作不正常
- 我可以'不要让Javascript工作不正常