gpt4 book ai didi

javascript - 获取数据属性onchange事件

转载 作者:行者123 更新时间:2023-12-01 05:11:56 25 4
gpt4 key购买 nike

我正在尝试检索已添加到选项元素的自定义数据属性,但它不起作用。

<p>Select a new car from the list.</p>

<select id="mySelect" onchange="myFunction(this.data-price)">
<option data-price="250" value="Audi">Audi</option>
<option data-price="130" value="BMW">BMW</option>
<option data-price="120" value="Mercedes">Mercedes</option>
<option data-price="400" value="Volvo">Volvo</option>
</select>

<p>When you select a new car, a function is triggered which outputs the value of the selected car.</p>
<p id="demo"></p>
function myFunction(val) {
document.getElementById("demo").innerHTML = "You selected: " + val;
console.log(val);
}

问题是当我将函数调用切换到:

onchange="myFunction(this.value)">

它正确返回值,但是当我选择数据价格时,它会向控制台返回 undefined

最佳答案

您的代码表示“获取数据属性”并从中减去变量“价格”。第二个问题,当属性存在于选项中时,您将在选择上选择该属性。你不能像使用值(value)一样使用它。

您应该使用dataset在所选选项上

function myFunction(sel) {
var opt = sel.options[sel.selectedIndex];
var price = opt.dataset.price
document.getElementById("demo").innerHTML = "You selected: " + price;
}
<p>Select a new car from the list.</p>

<select id="mySelect" onchange="myFunction(this)">
<option data-price="250" value="Audi">Audi</option>
<option data-price="130" value="BMW">BMW</option>
<option data-price="120" value="Mercedes">Mercedes</option>
<option data-price="400" value="Volvo">Volvo</option>
</select>

<p>When you select a new car, a function is triggered which outputs the value of the selected car.</p>
<p id="demo"></p>

关于javascript - 获取数据属性onchange事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60936382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com