我有几个具有相同div
的不同class
,没有id
,只有它们的onClick
函数将它们分开,因此它们是唯一可识别的,如下所示:
<div class="nest" onclick="nested.selection('VALUE1'); return false;">
... something inside the div ...
</div>
<div class="nest" onclick="nested.selection('VALUE2'); return false;">
... something inside the div ...
</div>
我将需要基于指定的div
值查找并删除整个onClick
,但是由于我无法使用getElementById,Class或Name,因此如何使用JS(而非jQuery)实现此查找?
答案 0 :(得分:2)
尝试
document.querySelector('[onclick="nested.selection(\'VALUE2\'); return false;"]').remove()
答案 1 :(得分:0)
elements = document.querySelectorAll('.nest');
for (var i = 0; i < elements.length; i++) {
elements[i].addEventListener('click', (event) => {
const item = event.target;
item.parentNode.removeChild(item);
});
}
此代码将在单击后删除div。 我将事件处理程序附加到所有“巢状”元素,然后在单击特定项目后将其删除。
答案 2 :(得分:0)
尝试一下
<div class="row">
<div id="element1" class="col-sm">
<img id="img1" src="1.jpg" />
</div>
<div id="element2" class="col-sm">
<img id="img2" src="2.jpg" />
</div>
<div id="element3" class="col-sm">
<img id="img3" src="3.jpg" />
</div>
</div>
html
var nested = {
selection: function (a, e) {
var element = e.currentTarget;
element.parentNode.removeChild(element);
}
}
答案 3 :(得分:0)
您无需在此处单击任何内容。只需传递参数即可。像这样:
shared preferences
deleteWithArg('VALUE1');
function deleteWithArg(deleteElement) {
var nst = document.getElementsByClassName("nest");
for(var i = 0; i < nst.length; i++)
{
let atr = nst.item(i).getAttribute('onclick').match(/'([^']+)'/)[1];
if (atr == deleteElement) {
nst.item(i).parentNode.removeChild(nst.item(i));
}
}
}
deleteWithArg('VALUE1');