如何在onchange事件期间访问选择框中的数据值

时间:2014-09-23 13:21:25

标签: javascript jquery html drop-down-menu

我正在使用带有javascript onchange事件的selectbox,如下所示

<select onchange="changeprice(this);" >
    <option value="" selected="">Please select an option</option>
    <option value="17" data-operator="+" data-differ="0.00">2 Tons ( + $0.00 )</option>
    <option value="18" data-operator="-" data-differ="125.00">5 Tons ( - $125.00 )</option>
</select>

我设法调用函数没有问题,但在事件期间我希望得到数据属性而不是值,我无法让它按预期工作 以下是我目前的javascript

<script>
function changeprice($this){

alert("test");//successfully alerted
alert($this.data-differ);//no respond
alert($this.data("operator"));//no respond
alert($this.data("differ"));//no respond

};
</script>

请告知

3 个答案:

答案 0 :(得分:1)

你可以这样做:

<script>
function changeprice(element){

var op = $(element).find("option:selected").data("operator")
var diff = $(element).find("option:selected").data("differ")

};
</script>

答案 1 :(得分:0)

我认为你正在使用jQuery。如果是这样,您可以使用

访问数据属性
$($this).data("differ")

没有jQuery,它可能看起来像

// For newer browsers
$this.dataset.differ

// For older IE's, check http://caniuse.com/#feat=dataset where you need to use this solution
$this.getAttribute("data-differ")

答案 2 :(得分:0)

您可以获得不同的属性和值:

$($this).find(':selected').attr('data-operator');
$($this).find(':selected').attr('data-differ');
$($this).find(':selected').val();