JS:根据其onClick值选择DIV

时间:2018-12-21 08:04:09

标签: javascript html

我有几个具有相同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)实现此查找?

4 个答案:

答案 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');