我注意到jQuery .attr()
有一个变体,它允许您为函数设置属性名称:请参阅here。
我正在尝试寻找与此对应的普通js,但请注意,setAttribute()
函数似乎只允许您将属性值设置为字符串:请参阅here。
更具体地说,我正在尝试将jQuery中的this article代码片段转换为普通的js:
$(function(){
$('.stroke-double, .stroke-single').attr('title', function(){
return $(this).html();
});
});
发布于 2019-03-05 06:14:56
带有函数的jQuery的.attr
对查询结果中的每个元素进行操作。等效项如下所示
function attrEquiv(selector, attr, setterFunction) {
document.querySelectorAll(selector).forEach((el, i) => {
el.setAttribute(attr, setterFunction.call(el, i, attr)) // bind `el` to `this`
})
}
attrEquiv('.stroke-double, .stroke-single', 'title', function(index, attr) {
return this.innerHTML
})
ES5版本
var elements = document.querySelectorAll(selector)
Array.prototype.forEach.call(elements, function(el, i) {
el.setAttribute(attr, setterFunction.call(el, i, attr))
})
https://stackoverflow.com/questions/54992319
复制相似问题