Vanilla js相当于jquery .attr(attributeName,function)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (20)

我注意到jQuery .attr()有一个变体,它允许你为一个函数设置一个属性名称:见这里

我试图找到相当于此的普通香草js,但请注意,该setAttribute()函数只显示允许您将属性值设置为字符串:请参阅此处

更具体地说,我正在尝试将这篇文章的片段从jQuery 转换为plain js:

$(function(){
  $('.stroke-double, .stroke-single').attr('title', function(){
    return $(this).html();
  });
});
提问于
用户回答回答于

.attr带有函数的jQuery 对查询结果中的每个元素进行操作。等价物就像是

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))
})

扫码关注云+社区

领取腾讯云代金券