jQuery从空格分隔的数据属性中删除项目

时间:2014-02-11 10:34:40

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

鉴于此标记:

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

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

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

3 个答案:

答案 0 :(得分:5)

你可以做到

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

答案 1 :(得分: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. 将字符串放回到一起,只留下左边的字符

    var foo = foos.join(" ")

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

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

答案 2 :(得分:2)

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

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

这适用于foo bazbaz foofoo baz bar等。