【问题标题】:using jquery to set html5 data attributes on a select option使用 jquery 在选择选项上设置 html5 数据属性
【发布时间】:2015-03-26 11:01:11
【问题描述】:

只是想知道是否有人可以告诉我如何将 HTML5 数据元素添加到生成的 jquery <select> <option>。我有以下代码,它以编程方式从 Ajax 查询的结果中设置选择的 <options>

$request.then(function (data) {
    var p_id = $("[name='property_id']").val() || -1;
    for (var d = 0, l = data.length; d < l; d++) {
       var item = data[d];
       var option = new Option(item.text, item.id, false, (item.id === p_id ? true : false));
       // this doesnt work
       option.data('data-owner_id') = item.owner_id;
       option.data('data-property_id') = item.property_id;
       $element.append(option);
    }
    $element.trigger('change');
});

提前致谢。

【问题讨论】:

    标签: jquery html html5-data


    【解决方案1】:

    .data() 方法采用配对的键和值。试试这个:

       option.data('owner_id', item.owner_id);
       option.data('property_id', item.property_id);
    

    除此之外,您可以使用.attr() 方法将属性添加到您的选项中。我只是给你举个例子。

      option.attr('data-owner_id', item.owner_id);
      option.attr('data-property_id', item.property_id);
    

    已编辑:
    由于 option 变量不是 jquery 对象,所以不能像上面的函数那样调用 jquery 方法。另一种选择是使用原生 javascript .setAttribute()

    option.setAttribute('data-owner_id', item.owner_id);
    option.setAttribute('data-property_id', item.property_id);
    

    【讨论】:

    • 关闭...但不完全。我都尝试了,得到了 Uncaught TypeError: undefined is not a function。我想我可能必须在将属性附加到元素后通过 jquery 添加属性。
    • 在哪一行出现错误,undefined is not a function 通常是因为您尝试调用不允许的 jquery 函数,因为该选项已经包装为 DOM。你怎么改成option.setAttribute("data-owner_id", item.owner_id)
    • 很高兴听到这个消息..!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2011-03-31
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多