向Select Option添加属性以提取其他数据



我有一个选择框,我有一个针对选项的值,我还想要另一个基于选择的值。

我选择

:

<select class="form-control input-lg" id="credits">
    <option value="1" price="2">1 Credit</option>
    <option value="10" price="4">10 Credits</option>
    <option value="25" price="6">25 Credits</option>
    <option value="50" price="8">50 Credits</option>
    <option value="100" price="10">100 Credits</option>
    <option value="200" price="12">200 Credits</option>
</select>
<button id="top">Apply</button>

我的Javascript寻找select:

的值
$(document).on('click', 'button#top', function(e) {
    e.preventDefault();
    var credits = $('select#credits').val();
    var value = $('select#credits').val($('option:selected').data('price'));
});

目前我在alert()上得到的都是Object[Object]

谁能告诉我我哪里错了?

val()将只获得(或设置)实际的value;没有price或任何其他属性。

如果你要使用jQuery的data()方法,你需要使用data-*属性。

最后,当使用id时,不需要包含标签名称(例如select)。id是独一无二的。

考虑到这一点:

$(document).on('click', '#top', function(e) {
    e.preventDefault();
    var credits = $('#credits').val();
  
    // the + makes sure we get a numeric value
    var value = + $('#credits option:selected').data('price');
    console.log(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="form-control input-lg" id="credits">
    <option value="1" data-price="2">1 Credit</option>
    <option value="10" data-price="4">10 Credits</option>
    <option value="25" data-price="6">25 Credits</option>
    <option value="50" data-price="8">50 Credits</option>
    <option value="100" data-price="10">100 Credits</option>
    <option value="200" data-price="12">200 Credits</option>
</select>
<button id="top">Apply</button>

使用$('select#credits option:selected')锁定所选选项,然后使用.attr('price')获取属性价格

$(document).on('click', 'button#top', function(e) {
    e.preventDefault();
    var credits = $('select#credits').val();
    var value = $('select#credits option:selected').attr('price');  
    alert(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control input-lg" id="credits">
    <option value="1" price="2">1 Credit</option>
    <option value="10" price="4">10 Credits</option>
    <option value="25" price="6">25 Credits</option>
    <option value="50" price="8">50 Credits</option>
    <option value="100" price="10">100 Credits</option>
    <option value="200" price="12">200 Credits</option>
</select>
<button id="top">Apply</button>

最新更新