【问题标题】:jQuery remove item from a space delimited data attributejQuery 从空格分隔的数据属性中删除项目
【发布时间】:2015-04-28 13:19:18
【问题描述】:

鉴于此标记:

<a data-foo="bar baz">Hello</a>

是否可以删除baz 但保留bar,理想情况下不删除两者然后添加回bar

jQuery removeData 方法似乎删除了指定的数据属性或所有数据属性。

【问题讨论】:

  • 是的,对不起。修好了。
  • @Johan 又一个脑残,抱歉。这是一个空格分隔的列表。问题已更新。
  • @Satpal 问题已修复。
  • @Anton 它不知道bar 会是什么。所以我不能删除它然后重新设置它。

标签: javascript jquery string html custom-data-attribute


【解决方案1】:

你可以的

 $('a').data('foo', $('a').data('foo').split(' ')[0])

【讨论】:

    【解决方案2】:

    我不确定这是否是您要查找的内容,但这可能会有所帮助

    1. 首先获取 data-foo 的值

      var foo = $('a').data('foo')

    2. foo 字符串拆分为一个数组

      var foos = []

      foos = foo.split(" ")

    3. 选择要保留的项目(或删除要删除的项目)

      var index = foos.indexOf("baz")

      foos.splice(index,1)

    4. 把字符串和左边的 foo 放在一起

      var foo = foos.join(" ")

    5. 将 data-foo 设置为新过滤的数据

      $('a').data('foo',foo)

    【讨论】:

      【解决方案3】:

      假设数据是一个空格分隔的字符串:

      var data = $("a").data("foo");
      data = (" " + data + " ").replace(" baz ", " ").replace(/^ | $/g, "");
      $("a").data("foo", data);
      

      这应该适用于foo bazbaz foofoo baz bar 等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-19
        • 2023-03-20
        • 1970-01-01
        • 2011-12-26
        相关资源
        最近更新 更多