我有这个图像元素:
<img class="cat" src="img/tom.png" alt="Cat">
我想立即删除src
和alt
属性
我期望removeAttribute()
方法采用多个参数,但事实并非如此。
除了这个重复的代码之外,还有另一种方法吗?
image.removeAttribute('src');
image.removeAttribute('alt');
答案 0 :(得分:2)
你可以创建一个带有你想要移除的元素和属性的函数。
function removeAttributes(element, ...attrs) {
attrs.forEach(attr => element.removeAttribute(attr))
}
removeAttributes(document.querySelector('img'), 'src', 'alt')
&#13;
<img class="cat" src="img/tom.png" alt="Cat">
&#13;
如果你想在DOM元素上调用它,你可以扩展Element原型。
Element.prototype.removeAttributes = function(...attrs) {
attrs.forEach(attr => this.removeAttribute(attr))
}
document.querySelector('img').removeAttributes('src', 'alt')
&#13;
<img class="cat" src="img/tom.png" alt="Cat">
&#13;
答案 1 :(得分:2)
不确定它会让它变得更好但你可能会做这样的事情:
['alt', 'src'].forEach(attribute => image.removeAttribute(attribute));
或创建一般删除属性函数:
const removeAttributes = (element, ...attributes) => attributes.forEach(attribute => element.removeAttribute(attribute));
你会这样称呼:
removeAttributes(image, 'alt', 'src');
答案 2 :(得分:0)
Jquery解决方案: image.removeAttr('src alt')
等空格分隔属性应该有效。
编辑:使用纯Javascript,您可以使用removeAttribute循环遍历数组:
答案 3 :(得分:0)
这就是我的做法-
(() => {
'use strict';
let token = 'src|alt';
if (token === '' || token === 'import altair as alt
from vega_datasets import data
cars = data.cars()
title = alt.Chart(
{"values": [{"text": "The Title"}]}
).mark_text(size=20).encode(
text="text:N"
)
subtitle = alt.Chart(
{"values": [{"text": "Subtitle"}]}
).mark_text(size=14).encode(
text="text:N"
)
chart = alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin'
)
alt.vconcat(
title,
subtitle,
chart
).configure_view(
stroke=None
).configure_concat(
spacing=1
)
') { return; }
let tokens = token.split(/\s*\|\s*/);
let selector = 'img';
if (selector === '' || selector === 'img') {
selector = `[${tokens.join('],[')}]`;
}
let rmattr = () => {
let elements = document.querySelectorAll(selector);
for ( let element of elements ) {
for (let attr of tokens) {
element.removeAttribute(attr);
}
}
};
if (document.readyState === 'loading' || document.readyState === 'interactive' || document.readyState === 'complete') {
rmattr();
} else {
addEventListener('load', rmattr);
}
})();