javascript - 使用 jQuery 采用自定义属性而不是 val()

标签 javascript jquery html attributes

我有以下代码:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.pack.js"></script>
</head>
<body>
<select name="size">
    <option custAttr="0" value="0" disabled selected>Value ↓</option>
    <option custAttr="10" value="10">AAA (10)</option>
    <option custAttr="20" value="20">BBB (20)</option>
    <option custAttr="30" value="30">CCC (30)</option>
</select>

<label class="result"></label>

<script>
$(document).ready(function() {
    $('select').on('change', function() {
        $('.result').text(
            $('select[name=size]').val()
        );
    });
});
</script>
</body>
</html>

实际上,脚本从value=""获取内容。有没有办法让脚本从我的自定义属性 custAttr="" 获取代码?

最佳答案

首先请注意,创建自己的属性将意味着您的 HTML 无效,这可能会产生意想不到的效果。使用 data-* 属性来存储您自己的数据。从那里您可以使用 option:selected 来获取所需的数据值。试试这个:

$(document).ready(function() {
  $('select').on('change', function() {
    $('.result').text($('select[name=size] option:selected').data('cust-attr'));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="size">
  <option data-cust-attr="0" value="0" disabled selected>Value ↓</option>
  <option data-cust-attr="10" value="10">AAA (10)</option>
  <option data-cust-attr="20" value="20">BBB (20)</option>
  <option data-cust-attr="30" value="30">CCC (30)</option>
</select>

<label class="result"></label>

关于javascript - 使用 jQuery 采用自定义属性而不是 val(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39830252/

相关文章:

javascript - 对象类型的 fill() 方法

javascript - 冲突导致背景视频无法显示

javascript - 检测 jQuery UI 可排序项目是否接触/超出其容器

javascript - 在 promise 中使用 setState 后,React 不会重新呈现

javascript - 如何使用 javascript 解析带有命名空间的 xml 字符串

javascript - 附加项流到 div 之外

javascript - Firefox 中的 Kiwi 文本样式

html - 有没有办法强制下拉(选择)箭头控件位于右侧?

html - 如何使我的文章列表 div 标签居中?

javascript - 定位没有类或 ID 的特定元素