Javascript 如何在每次选择新选项时触发jQuery函数?
我有一个带有可下拉列表的HTML,每个下拉列表都有一个表示所选车辆价格的值标签 我希望每次选择时都显示所选选项的值 在我的代码中,我使用了change函数,但它似乎不起作用。怎么了 HTML+CSS:Javascript 如何在每次选择新选项时触发jQuery函数?,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有可下拉列表的HTML,每个下拉列表都有一个表示所选车辆价格的值标签 我希望每次选择时都显示所选选项的值 在我的代码中,我使用了change函数,但它似乎不起作用。怎么了 HTML+CSS: 您应该使用id,并且需要获取的值是从选项中选择onot的值 $'car-selector'.changefunction{ var packagePrice=$car-selector.val; $'div.price-here'.textpackagePrice+USD; }; 精选品牌 沃尔
您应该使用id,并且需要获取的值是从选项中选择onot的值 $'car-selector'.changefunction{ var packagePrice=$car-selector.val; $'div.price-here'.textpackagePrice+USD; }; 精选品牌 沃尔沃汽车 萨博 欧宝 奥迪 默认价格请尝试以下代码:
$('select.car-selector').change(function () {
if($(this).hasClass('b')){
var packagePrice = $(".car-selector").val();
$('div.price-here').html(packagePrice + " USD");
}
else
$('div.price-here').html('');
});
通过简单地使用HTML,您可以向第一个选项Select brand添加禁用属性
一旦最终用户选择了某个选项,就不可能返回到选项选择品牌
$'select.car selector'.changefunction{
var packagePrice=$”.车辆选择器选项.b:已选择.val;
$'div.price-here'.textpackagePrice+'USD';
};
精选品牌
沃尔沃汽车
萨博
欧宝
奥迪
违约价格
检查值而不是b类,所以移除选择器的b类,并像这样检查值,如果值是show Defalut price,否则显示值
$document.readyfunction{
$'select.car selector'.changefunction{
var packagePrice=$.car选择器选项:selected.val;
packagePrice=$.trimpackagePrice;
如果包装价格==
$'div.price-here'.textpackagePrice+USD;
其他的
$'div.price-here'。文本'Default price';
}
}
精选品牌
沃尔沃汽车
萨博
欧宝
奥迪
默认价格如中所述
在尝试添加更改事件侦听器时,没有select.car-selector
您可以通过返回DOM元素的长度来检查其是否存在:
console.logBefore:,$select.car-selector.length;
//$select.car-selector不在DOM中
$'select.car selector'.change函数{
var packagePrice=$.car selector option.b:selected.val;
$'div.price-here'.textpackagePrice+USD;
};
精选品牌
沃尔沃汽车
萨博
欧宝
奥迪
违约价格
console.logAfter:,$select.car-selector.length;
//select.car-selector存在于DOM中
您需要在document ready handler中包装代码,或将代码移动到页面的底部^。以键入方式关闭在尝试添加更改事件侦听器时,没有选择.car-selector。该节点是在脚本执行后创建的。只需将脚本标记移动到表单标记之后。不需要使用ID,也不会更改任何内容。他的代码片段中的问题是执行顺序,他的代码是在创建节点之前执行的。是的,没有必要,但根据我的经验,在这种情况下,你最好使用ID。这可以防止进一步的错误。我尽量避免ID,因为它们不能很好地扩展,因为它们必须是唯一的。但主要的一点不是所使用的选择器,而是执行顺序。将选择器更改为ID不会改变这一点。
$('select.car-selector').change(function () {
if($(this).hasClass('b')){
var packagePrice = $(".car-selector").val();
$('div.price-here').html(packagePrice + " USD");
}
else
$('div.price-here').html('');
});
$(document).ready(function(){
$('select.car-selector').change(function () {
var packagePrice = $(".car-selector option:selected").val();
packagePrice = $.trim(packagePrice);
if(packagePrice !=="")
$('div.price-here').text(packagePrice + " USD");
else
$('div.price-here').text('Default price');
})
})