javascript - 根据属性更改选择选项

标签 javascript jquery html

我正尝试在单击 时更改选择选项,但我不想使用选项值。如果我给我的按钮一个 value='3',我的代码就可以工作,但我想要的是选择带有 data-price="0" 的那个,在我的例子中是带有 value='3' 的那个。

JS:

jQuery(document).ready(function () {
    jQuery('#sample-addtocart-button').click(function(){
        jQuery('.product-custom-option').val(jQuery(this).attr('value'));
    });
});

HTML :

<button value="0" id="sample-addtocart-button" type="button">Free</button>

<select class="product-custom-option">
    <option value="">-- Please Select --</option>
    <option data-price="10" value="1">£10.00</option>
    <option data-price="20" value="2">£20.00</option>
    <option data-price="0" value="3">FREE</option>
</select>

任何帮助将不胜感激

最佳答案

您可以使用 attribute equals selector获取选项,然后通过使用 prop() 设置 selected 属性来选择选项 方法。

jQuery(document).ready(function() {
  jQuery('#sample-addtocart-button').click(function() {
    jQuery('.product-custom-option option[data-price="' + jQuery(this).attr('value') + '"]').prop('selected', true);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button value="0" id="sample-addtocart-button" type="button">Free</button>

<select class="product-custom-option">
  <option value="">-- Please Select --</option>
  <option data-price="10" value="1">£10.00</option>
  <option data-price="20" value="2">£20.00</option>
  <option data-price="0" value="3">FREE</option>
</select>

关于javascript - 根据属性更改选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749926/

相关文章:

javascript - safari 浏览器 toLocaleString() 的替代方案

javascript - 如何使用 jQuery 启用或禁用 html 中的 select 标签?

html - list.js javascript 库不工作

javascript - 将数据从 res.write() 传递到强大的文件名

javascript - 如何添加鼠标悬停音频的延迟(悬停时的声音)

javascript - 以 JavaScript 中的对象数组为目标

javascript - 无法读取未定义的“id &#39”属性

javascript - 从父范围数组中删除元素

javascript - 为什么我不能使用 jQuery 功能

javascript - 通过前置和附加创建动态 DOM 结构