How to get data attribute of option tag in JavaScr

2020-07-18 10:17发布

Want to get data attribute value from selected dropdown option.

<select name="selection" id="mySelect">
    <option value="21" data-rc="25" data-clnc="10">Treatment</option>
</select>

var rc = ? //value of data-rc
var clnc = ? //value of data-clnc

No jQuery please only JavaScript :)

标签: javascript
6条回答
爱情/是我丢掉的垃圾
2楼-- · 2020-07-18 10:54

You can read them out via dataset property.

var option = document.getElementsByTagName("option")[0];

console.log(option.dataset.rc)
console.log(option.dataset.clnc)
<option value="21" data-rc="25" data-clnc="10">Treatment</option>

Or, if you want to get the values of the selected option:

var selection = document.getElementById("mySelect");

selection.onchange = function(event){
  var rc = event.target.options[event.target.selectedIndex].dataset.rc;
  var clnc = event.target.options[event.target.selectedIndex].dataset.clnc;
  console.log("rc: " + rc);
  console.log("clnc: " + clnc);
};
<select name="selection" id="mySelect">
<option value="21" data-rc="25" data-clnc="10">Treatment</option>
<option value="21" data-rc="23" data-clnc="30">Treatment1</option>
<option value="21" data-rc="31" data-clnc="50">Treatment2</option>
<option value="21" data-rc="14" data-clnc="75">Treatment3</option>
</select>

查看更多
smile是对你的礼貌
3楼-- · 2020-07-18 10:56

    var mySelect = document.querySelector('#mySelect')
        console.log('mySelect value ' + mySelect.value)
        console.log('mySelect data-rc ' + mySelect.selectedOptions[0].getAttribute("data-rc"))
        console.log('mySelect data-clnc ' + mySelect.selectedOptions[0].getAttribute("data-clnc"))
<select name="selection" id="mySelect">
    <option value="21" data-rc="25" data-clnc="10">Treatment</option>
</select>

查看更多
ら.Afraid
4楼-- · 2020-07-18 11:01

You can do that with jquery selector

var rc = $('select option:selected').data('rc');
查看更多
爷的心禁止访问
5楼-- · 2020-07-18 11:05

$(selector).find("option:selected").data("rc") for rc and clnc for clnc where selector is your "select" tag id/class

查看更多
ゆ 、 Hurt°
6楼-- · 2020-07-18 11:13

Check this working pen

working pen

$('#options').on('change', function(){
    alert($(this).find("option:selected").attr('data-rc'))
    alert($(this).find("option:selected").attr('data-clnc'))
});
查看更多
萌系小妹纸
7楼-- · 2020-07-18 11:17

suppose we have a select field

    <select id="ddlViewBy">
      <option value="1" data-rc="25" data-clnc="10" selected="selected">test1</option>
      <option value="2" >test2</option>
      <option value="3">test3</option>
    </select>

Now we will get the select list and its selected option

    var e = document.getElementById("ddlViewBy");
    var option= e.options[e.selectedIndex];

Now we have the selected option we can get its attribtues

    var attrs = option.attributes;

attrs is the attributes array you can get attribtues by index you want.

Or you can get attribtues by

    var datarc = option.getAttribute("data-rc");
查看更多
登录 后发表回答