代码之家  ›  专栏  ›  技术社区  ›  user2636556

按数据属性搜索,并替换

  •  3
  • user2636556  · 技术社区  · 9 年前

    <a href="#" data-finder-code="" data-dropdown-placeholder="Select..." data-dropdown-text="1">Samsung</a>
    

    这是我的JQuery

    var finder_code = 39;
    $("a[data-dropdown-text='1']").data("finder-code", finder_code);
    

    $("a[data-dropdown-text='1']") 并尝试更换 data-finder-code 在同一个 href

    3 回复  |  直到 8 年前
        1
  •  4
  •   Rory McCrossan Hsm Sharique Hasan    9 年前

    你的代码运行良好。当您使用 data() 出于性能原因,jQuery只更新其内部缓存。如果使用的getter检索值 数据() ,然后您可以看到它工作正常:

    var finder_code = 39;
    $("a[data-dropdown-text='1']").data("finder-code", finder_code);
    
    console.log($("a[data-dropdown-text='1']").data('finder-code'));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <a href="#" data-finder-code="" data-dropdown-placeholder="Select..." data-dropdown-text="1">Samsung</a>

    如果你 要更新DOM中的值,可以使用 attr('data-finder-code') 但是,速度会稍微慢一些:

    var finder_code = 39;
    $("a[data-dropdown-text='1']").attr('data-finder-code', finder_code);
    
        2
  •  1
  •   Satpal    9 年前

    .data(key, value) 它不会更新DOM。

    .attr(key, value)

    $("a[data-dropdown-text='1']").attr("data-finder-code", finder_code);
    
        3
  •  1
  •   user8317956 user8317956    9 年前

    var finder_code = 39;
    $("a[data-dropdown-text='1']").attr("data-finder-code", finder_code);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <a href="#" data-finder-code="" data-dropdown-placeholder="Select..." data-dropdown-text="1">Samsung</a>

    请尝试更换 data("finder-code") 具有 attr("data-finder-code") 用于DOM更新。