javascript - 显示来自所选单选按钮的自定义 HTML5 数据属性

标签 javascript jquery html

我正在尝试从多个按钮组中选定的radio buttons 检索自定义数据属性并将它们显示给用户。

这是我正在使用的单选按钮的示例:

<input type="radio" id="poolSmallButton" name="pool" class="calc" value="500" data-selection-name="Small Pool"/>
<input type="radio" id="poolMediumButton" name="pool" class="calc" value="1000" data-selection-name="Medium Pool"/>

<input type="radio" id="landscapingSmallButton" name="landscaping" value="100" class="calc" data-selection-name="Small Landscaping"/>
<input type="radio" id="landscapingMediumButton" name="landscaping" value="500" class="calc" data-selection-name="Medium Landscaping"/>

<span id="quote-items" name="quote-items"></span>

我目前正在使用此 jQuery 从选定的 radio buttons 中提取数据属性,但目前只加载了最顶部的 radio buttonDOM 中只会显示为我的输出:

var itemNames = [$(".calc:checked").attr("data-selection-name")];
  $("#quote-items").text(itemNames)

谢谢!

最佳答案

无论何时使用 .attr(key) 方法,它总是会为您获取第一个匹配元素的值。要从所有匹配的元素中获取值,您需要迭代,有多种方法。 .each() 可用于迭代和推送数组中的值。

这里我使用了 .map() 来获取选中复选框的属性值数组

$('.calc').change(function() {
  var itemNames = $(".calc:checked").map(function() {
      return $(this).attr("data-selection-name")
    })
    .get() //Get an array
    .join(',') //Generate Comma seperate string;

  $("#quote-items").text(itemNames);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" id="poolSmallButton" name="pool" class="calc" value="500" data-selection-name="Small Pool" />
<input type="radio" id="poolMediumButton" name="pool" class="calc" value="1000" data-selection-name="Medium Pool" />

<input type="radio" id="landscapingSmallButton" name="landscaping" value="100" class="calc" data-selection-name="Small Landscaping" />
<input type="radio" id="landscapingMediumButton" name="landscaping" value="500" class="calc" data-selection-name="Medium Landscaping" />

<span id="quote-items" name="quote-items"></span>

此外,您可以使用 Element.dataset访问 data-* 前缀属性的属性,例如

this.dataset.selectionName;

代替

$(this).attr("data-selection-name");

关于javascript - 显示来自所选单选按钮的自定义 HTML5 数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37728993/

相关文章:

javascript - 使用 Javascript 和 jQuery 自动填充选择框

javascript - DIV 和 nowrap 容器顶部的滚动条

javascript - 请求自动播放音频文件的权限

javascript - 为什么 async : false inside a listener, 停止所有执行?

javascript - Backbone.js: Uncaught TypeError: Object #<Object> 没有方法 'get'

jquery - 使用 jQuery 将新的输入文本框 DOM 附加到 HTML 正文

javascript - Wordpress 网站滚动仅在特定浏览器大小的一页上不起作用

javascript - 如何使用 Ajax 和 Nodejs 从文件夹中获取图像?

javascript - 之后的代码不能完全使用 jquery、javascript。我很困惑:(

javascript - 使用 NodeJS/ExpressJS 后端服务 Angular 通用应用程序