[whatwg/dom] Consider boolean interface for properties (#461)

I often want to control boolean attributes with a property, forgetting that I have to write boiler plate to `setAttribute`/`removeAttribute` when other libraries provide convenience functions that are based upon the type or the attribute being set.

jQuery has two methods `attr()` and `prop()` which make managing boolean attributes much simpler:

```
$el.prop("hidden", true); // <el hidden="" />
$el.prop("hidden", false); // <el />
```

and:
```
$el.attr("hidden", true); // <el hidden="hidden" />
$el.attr("hidden", false); // <el />
```

Perhaps it doesn't make sense to implement this for all attributes, instead provide just:

```
el.setBoolAttribute("");
```

Which would function like:
```
Element.prototype.setBoolAttribute = function (attr, bool) {
  if (bool) {
    this.setAttribute(attr, "");
  } else {
    this.removeAttribute(attr);
  }
};
```

That being said `attr` could implement this too, where boolean attributes to the second argument would behave different to a string:
```
el.attr("hidden", "false"); // <el hidden="false" />
el.attr("hidden", false); // <el />
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/issues/461

Received on Monday, 22 May 2017 17:05:53 UTC