通过香草javascript更改数据目标按钮属性

gil*_*usz 3 javascript custom-data-attribute

我已经关闭了启动模态的按钮,如下所示:

<button id="back_offer_button" type="button" class="btn btn-default" data-dismiss="modal" data-toggle="modal" data-target="#addOffer">Go back</button>
Run Code Online (Sandbox Code Playgroud)

我希望能够通过香草JavaScript将数据目标动态更改为其他位置:

例如现在是

data-target="#addOffer"
Run Code Online (Sandbox Code Playgroud)

我想将其更改为

data-target="#addDifferentOffer"
Run Code Online (Sandbox Code Playgroud)

所以我试图得到这个按钮:

var backOfferButton = document.getElementById('back_offer_button');
Run Code Online (Sandbox Code Playgroud)

然后:

backOfferButton.data-target = "#addDifferentOffer" <?>
Run Code Online (Sandbox Code Playgroud)

这当然是行不通的。应该如何正确书写?

Zak*_*rki 9

正确的管理方法data-* attributes是使用dataset

var backOfferButton = document.getElementById('back_offer_button');
backOfferButton.dataset.target = "#addDifferentOffer";
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

var backOfferButton = document.getElementById('back_offer_button');
backOfferButton.dataset.target = "#addDifferentOffer";
Run Code Online (Sandbox Code Playgroud)
var backOfferButton = document.getElementById('back_offer_button');

console.log(backOfferButton.dataset.target);

backOfferButton.dataset.target = "#addDifferentOffer";

console.log(backOfferButton.dataset.target);
Run Code Online (Sandbox Code Playgroud)

  • 这也是正确的方法,再次感谢您的帮助 (2认同)
  • 请注意与旧浏览器的兼容性(如果您定位到旧浏览器),https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/dataset (2认同)