如何将HTML数据属性设置为下拉按钮的值?

时间:2015-02-13 15:46:46

标签: jquery html5

我读到的每篇帖子都是如何计算jQuery代码的,但我知道了这一点:

<button id ="seButton" data-value="????" data-toggle="dropdown" class="btn btn-primary dropdown-toggle">Options<span class="caret"></span></button>
  <ul class="dropdown-menu noclose">
    <li>
      <input type="checkbox" id="ex3_1" name="ex3" value="1" checked="">
      <label for="ex3_1">Option 1</label>
    </li>
    <li>
      <input type="checkbox" id="ex3_2" name="ex3" value="2">
      <label for="ex3_2">Option 2</label>
    </li>
    <li>
      <input type="checkbox" id="ex3_3" name="ex3" value="3">
      <label for="ex3_3">Option 3</label>
    </li>
  </ul>
</div>

和jQuery:

<script type="text/javascript">
$(document).ready(function(){
  $('#seButton').click(function() {
    var se = $(this).attr('data-value');

    console.log("se equals " + se);    
  });
});
</script>

我抓住data-value就好了,但我不知道如何首先设置数据值以捕获用户可能选择的选项。我正在使用Bootstrap的noclose,因此用户可以根据需要选择MULTIPLE选项。我希望JavaScript var等于他们选择的任何选项....

更新

我通过更改脚本按如下方式对此进行了排序:

<script type="text/javascript">
var seSelection = [];
$(document).ready(function(){
  $(".dropdown-menu input").click(function() {
    var value = $(this).val();
        $(this).closest("#seButton").data();
        if (this.checked) {
        seSelection.push(this.value);
        }

    console.log("se equals " + seSelection);    
  });
});
</script>

我在$(document).ready之前定义了一个数组,然后将我选择的每个值推送到该数组。我确信这是一种更好的方法,但是如果其他人都在阅读这个寻找解决方案的帖子,那么这个方法就有用了!

2 个答案:

答案 0 :(得分:1)

您可以像这样设置数据值:

$(this).data('value', valueToSet);

并得到这样的结果:

$(this).data('value');

.data假定它以数据开头 - 因此数据(&#39;值&#39;)与attr相同(&#39;数据值&#39;)

答案 1 :(得分:1)

我首先从您单击的输入中获取值,然后将该值设置为按钮。试着这样做:

$(".dropdown-menu input").click(function() {
        var value = $(this).val();
        $(this).closest("#seButton").data('value', value);
    });