是否有另一种方法可以检索javascript

时间:2019-08-26 05:57:01

标签: javascript

我试图更好地理解javascript,所以我决定使用vanilla javascript编写一个像库这样的基本JQuery。我遇到的问题是我试图获取html元素的属性或设置html元素的属性取决于在调用函数的方式上,但我仍然无法得到定义。我以为也许是因为它被读取为未定义,所以我只需要返回该函数,但随后我不会为空。我有点想找地图。请帮助

因此,我已经使用了querySelectorgetAttribute函数,但是它的读值是未定义的。我假设由于其未定义,因此它在内存中只是未定义。有人可以帮助失去大脑的人吗?

function legion(selector) {
  const self = {
    attr: (attribute, value) => {
      if (value == null) {
        console.log("get")
        self.element.querySelector(attribute)
      } else if (value) {
        console.log("set")
        self.element.setAttribute(attribute, value)
      }
    },
  }
  
  return self;
};

console.log(legion("h1").attr(".class"))
<h1 class="class">h1</h1>
<h2 id="h2">h2</h2>
<h3 data="true">h3</h3>

我希望控制台记录课程

1 个答案:

答案 0 :(得分:1)

这可能就是您想要实现的目标

function legion(selector) {
  const self = {
    element: document.querySelector(selector),
    attr: (attribute, value) => {
      if (value) {
        self.element.setAttribute(attribute, value)
        return self
      }
      return self.element.getAttribute(attribute)
    },
  }
  return self;
};

legion("h1").attr("class", "red")
console.log(legion("h1").attr("class"))
.red {
  color: red;
}
<h1 class="class">h1</h1>
<h2 id="h2">h2</h2>
<h3 data="true">h3</h3>