Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每次选择新选项时触发jQuery函数?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在每次选择新选项时触发jQuery函数?

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; }; 精选品牌 沃尔

我有一个带有可下拉列表的HTML,每个下拉列表都有一个表示所选车辆价格的值标签

我希望每次选择时都显示所选选项的值

在我的代码中,我使用了change函数,但它似乎不起作用。怎么了

HTML+CSS:


您应该使用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');
    })
})