JQuery从数据中获取一个属性

时间:2015-11-13 18:56:09

标签: jquery

我无法从

中捕获属性
data-smth="{containment:'.video-section', quality:'large', mute:true, opacity:1}" 

我想要静音并改为假。 我怎样才能做到这一点?对于具有一个属性的数据,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

尝试 -

$('.selector').attr("data-smth","{containment:'.video-section', quality:'large', mute:false, opacity:1}");

以下是文档:http://api.jquery.com/attr/

答案 1 :(得分:0)

这是因为当你在jquery中使用.attr()读取data-smth的这个属性时,返回值总是一个String。

因此,为了将静音更改为false,您需要使用jQuery.parseJSON()函数。但是,您还需要将属性data-smth格式化为正确的JSON。

我在这里做了一个关于我是怎么做的傻瓜

<h1 id="title" data-smth='{"containment":".video-section", "quality":"large", "mute":true, "opacity":1}'>Hello Plunker!</h1>


$( document ).ready(function() {
    var x = $('#title').attr('data-smth');
    console.log(x);
    var y = jQuery.parseJSON(x);
    console.log(y);
});

http://plnkr.co/edit/O7u1p7WuB9PO7tLmYA9Y

将变量作为JSON对象后,可以使用y.mute = false;然后使用.attr();

将y保存回属性