Javascript 调用函数jquery中的数据属性
我有一些下拉列表如下:Javascript 调用函数jquery中的数据属性,javascript,jquery,custom-data-attribute,Javascript,Jquery,Custom Data Attribute,我有一些下拉列表如下: <select name="qty" class="mb10" onchange="test()" data-plan-type="offer" data-plan-id="7395" data-plan-day="2210009"> <option value="0">0 rooms</option> <option value="1">1 rooms</option> <opti
<select name="qty" class="mb10" onchange="test()" data-plan-type="offer" data-plan-id="7395" data-plan-day="2210009">
<option value="0">0 rooms</option>
<option value="1">1 rooms</option>
<option value="2">2 rooms</option>
<option value="3">3 rooms</option>
<option value="4">4 rooms</option>
</select>
问题在于
onchange
事件,我无法在我的
中调用数据属性。我如何在函数中调用该数据属性?您的代码不起作用,因为关键字此
不引用选择元素上下文,而是引用文档
你可以
1) 将单击元素的对象作为函数中的参数传递
在js中:
function test($selectElement)
{
var this_plan_type = $selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
}
2) 通过测试方法中的选择器获取元素:
function test()
{
var $selectElement = $("select.mb10")
var this_plan_type = $selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
}
3) 使用jquery将事件附加到选择元素:
$(".mb10").change(function(){
var $selectElement = $(this);
var this_plan_type =$selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
});
您的代码不起作用,因为关键字
此
不引用选择元素上下文,而是引用文档
你可以
1) 将单击元素的对象作为函数中的参数传递
在js中:
function test($selectElement)
{
var this_plan_type = $selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
}
2) 通过测试方法中的选择器获取元素:
function test()
{
var $selectElement = $("select.mb10")
var this_plan_type = $selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
}
3) 使用jquery将事件附加到选择元素:
$(".mb10").change(function(){
var $selectElement = $(this);
var this_plan_type =$selectElement.data('plan-type');
var this_plan_id = $selectElement.data('plan-id');
var this_plan_day = $selectElement.data('plan-day');
alert(this_plan_type);
});
你可以用
bind()
方法创建一个新函数,该函数在调用时将其this
关键字设置为提供的值
0个房间
1个房间
2个房间
3个房间
4个房间
您可以使用
bind()
方法创建一个新函数,该函数在调用时将其this
关键字设置为提供的值
0个房间
1个房间
2个房间
3个房间
4个房间
将
作为参数传递给test()
,并使用该参数而不是此
(在您的案例中,它绑定到窗口
对象)
但老实说,您根本不应该使用onchange
属性。jQuery的方法应该绝对能够完成这项工作,即使在IE11中也是如此
功能测试(mySelect)
{
var this_plan_type=$(mySelect.data('plan-type');
var this_plan_id=$(mySelect.data('plan-id');
var this_plan_day=$(mySelect.data('plan-day');
警报(此计划类型);
}
0个房间
1个房间
2个房间
3个房间
4个房间
将
作为参数传递给test()
,并使用该参数而不是此
(在您的案例中,它绑定到窗口
对象)
但老实说,您根本不应该使用onchange
属性。jQuery的方法应该绝对能够完成这项工作,即使在IE11中也是如此
功能测试(mySelect)
{
var this_plan_type=$(mySelect.data('plan-type');
var this_plan_id=$(mySelect.data('plan-id');
var this_plan_day=$(mySelect.data('plan-day');
警报(此计划类型);
}
0个房间
1个房间
2个房间
3个房间
4个房间
您需要将元素的对象作为parameter@MilindAnantwar有其他方法吗?使用jquery绑定变更事件我怎么做?也许你有一些例子@用于选择和使用$('#selectQTY').data('plan-type')的MilindantWarput id;您需要将元素的对象作为parameter@MilindAnantwar有其他方法吗?使用jquery绑定变更事件我怎么做?也许你有一些例子@用于选择和使用$('#selectQTY').data('plan-type')的MilindantWarput id;哇!有趣…我不知道这个sytax:)它正在工作,@milindiantwar答案也在工作。谢谢你们俩,哇。有趣…我不知道这个sytax:)它正在工作,@milindiantwar答案也在工作。谢谢你们两位。