Javascript on Change 不适用于 [object html select element]

标签 javascript jquery html

这是我迄今为止尝试过的:

var getJqInputs = function(html) {
  var el = document.createElement('div');
  el.innerHTML = html;
  return el.childNodes[0];
}
alert(getJqInputs(document.getElementById("select").outerHTML));
/*getJqInputs(document.getElementById("select").outerHTML).addEventListener("change", function(){
    alert("sd");   
});*/
getJqInputs(document.getElementById("select").outerHTML).onchange = function() {
  alert("dhhj");
};
<select id="select">
  <option id="someid" name="1" class="someclass">Subhan</option>
  <option id="someid" name="2" class="someclass">Subhan</option>
  <option id="someid" name="3" class="someclass">Subhan</option>
  <option id="someid" name="4" class="someclass">Subhan</option>
  <option id="someid" name="5" class="someclass">Subhan</option>
  <option id="someid" name="6" class="someclass">Subhan</option>
  <option id="someid" name="7" class="someclass">Subhan</option>
  <option id="someid" name="8" class="someclass">Subhan</option>
  <option id="someid" name="9" class="someclass">Subhan</option>
  <option id="someid" name="20" class="someclass">Subhan</option>
  <option id="someid" name="23" class="someclass">Subhan</option>
</select>

我的实际场景中只有文本,我从中获取一个 dom 对象,然后尝试在其上添加更改事件。我的目的是获取所选每个选项的名称属性,但没有运气

虽然JQuery更简单,但是,我只能使用Javascript。

我有一个想法,将 here 中的 html 字符串转换为 DOM

我的问题是当您有 HTMLSelectElement 对象时如何添加更改事件? (不是从 id 或 class 获取)

最佳答案

这里有很多额外的、不需要的代码。您只需要在列表更改时找到所选选项,并按名称拉取其属性值即可:

document.getElementById("select").addEventListener('change', function() {
    alert(this.options[this.selectedIndex].getAttribute('name'));
});
<select id="select">
  <option id="someid" name="1" class="someclass">Subhan</option>
  <option id="someid" name="2" class="someclass">Subhan</option>
  <option id="someid" name="3" class="someclass">Subhan</option>
  <option id="someid" name="4" class="someclass">Subhan</option>
  <option id="someid" name="5" class="someclass">Subhan</option>
  <option id="someid" name="6" class="someclass">Subhan</option>
  <option id="someid" name="7" class="someclass">Subhan</option>
  <option id="someid" name="8" class="someclass">Subhan</option>
  <option id="someid" name="9" class="someclass">Subhan</option>
  <option id="someid" name="20" class="someclass">Subhan</option>
  <option id="someid" name="23" class="someclass">Subhan</option>
</select>

关于Javascript on Change 不适用于 [object html select element],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31798122/

相关文章:

javascript - Google Chrome 浏览器出现奇怪的 javascript 问题

javascript - 在 Twitter Bootstrap 3 中切换类时的过渡

javascript - jQuery 不支持选择顶级节点文本?

html - 为什么文本在html结构中包含在父元素中,但在浏览器中溢出了父元素?

html - 将两个按钮放在 HTML 中的同一行

javascript - 在线多人游戏中常见 "tick"怎么办?

javascript - 我需要在 Node js 或 AWS 中编写 cron 作业吗?

javascript - 试图解析 JSON 字符串,意外的数字

jquery - 添加自定义 URL 参数以及 $(this.form).serialize()

html - div 边框与 float 元素重叠