在Javascript中删除某个属性(不是ID)的除法
我正在开发一个chrome扩展,并尝试使用某些属性删除一些分区,如下所示: HTML:在Javascript中删除某个属性(不是ID)的除法,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在开发一个chrome扩展,并尝试使用某些属性删除一些分区,如下所示: HTML: 但是对于如上所示的,如果我只知道someAttr中的一个值,并且我希望有一个如下算法: (伪代码) 我应该怎么做(除了手动将HTML代码检查为字符串)?为什么使用|,您只需使用includes()检查属性值即可: var el=document.querySelector('div'); var-key=12345; if(el.getAttribute('someAttr')。包括(键)){ el.移除
但是对于如上所示的
,如果我只知道someAttr
中的一个值,并且我希望有一个如下算法:
(伪代码)
我应该怎么做(除了手动将HTML代码检查为字符串)?为什么使用
|
,您只需使用includes()
检查属性值即可:
var el=document.querySelector('div');
var-key=12345;
if(el.getAttribute('someAttr')。包括(键)){
el.移除();
}
堆栈溢出
const someAttrDivs=document.querySelectorAll('div[someAttr]”);
const key=“12345”;
someAttrDivs.forEach(div=>{
常量attrArr=div.getAttribute('someAttr').split('=');
常量值1=attrArr[1]。拆分('&')[0];
常量值2=属性值[2];
如果(值1==键| |值2==键){
div.remove();
}
});代码>
堆栈溢出
12345还可以使用此语法直接匹配其属性值包含目标键的元素
document.querySelector('[someAttr*=“12345”]')。remove();
如果需要动态传入此密钥,可以执行以下操作
const key='12345'
const targetElement=document.querySelector(`[someAttr*=“${key}”]`);
//在尝试调用remove方法之前检查元素是否存在是有意义的。
targetElement&&targetElement.remove();
阅读更多有关第一个代码块的内容,如果
s中的此类属性可能有两个或一个值,我可以将forEach
修改为以下内容吗?:someAttrDivs.forEach(div=>{const attrr=div.getAttribute('someAttr');if(attrr.includes(key)){div.remove();})
@taihouuuu-如果您希望密钥出现在字符串中的任何位置,则选择“是”<代码>包含将检查字符串中的任何位置是否存在。但是,如果要检查value1或value2值是否完全等于key,请使用==
运算符。
<div someAttr="value1=aaa&value2=bbb">Stack Overflow</div>
document.querySelector('[someAttr="value1=aaa&value2=bbb"]').remove();
var key = 12345;
if (value1 == key || value2 == key) {
removeThisDiv();
}