【问题标题】:Passing a value from a dropdown item从下拉项中传递值
【发布时间】:2020-12-31 07:01:54
【问题描述】:

我有一个下拉菜单。每个条目都有一个 ID 和一个值。单击列表中的项目会调用单击处理程序并传递 div。点击处理程序可以访问 id,但对值不起作用。

当我记录传递给事件处理程序的参数时,它会显示以下字符串:

<div class="dropdown-item" id="chooseLeagueLevelDD" value="0" onmouseup="mUp(this)">1. Bundesliga</div>

我能够使用事件处理程序来确定事件。如果我记录 obj.id,则会显示正确的字符串。如果我尝试登录obj.value,它是undefined

function mUp(obj) {
        if (obj.id == "pauseGame"){
                pauseGame();
        }
}

我错过了什么?

【问题讨论】:

  • div 元素没有 value 属性或属性。您的 HTML 无效。要获取div 的内容,请使用.textContent。如果要存储未显示的自定义数据,请使用 data-* attribute

标签: javascript html bootstrap-4


【解决方案1】:

div 没有原生 value 属性或属性,向 html 添加 value 属性基本上是添加自定义属性,因此您需要这样对待它。如果您在事件参数上使用 getAttribute() 方法,您应该能够获取您的数据。

function mUp(obj) {
        if (obj.getAttribute('value') == "pauseGame"){
            pauseGame();
       }
}

【讨论】:

  • 向 html 添加一个 value 属性基本上是添加一个自定义属性,所以你需要这样对待它 data-* 属性用于自定义属性。
【解决方案2】:

试试:

function mUp(obj) {
        console.log(obj.attributes.value.nodeValue);
}

【讨论】:

  • 只有属性有nodeValue,而div元素没有value属性,所以HTML是错误的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多