我无法从
中捕获属性data-smth="{containment:'.video-section', quality:'large', mute:true, opacity:1}"
我想要静音并改为假。 我怎样才能做到这一点?对于具有一个属性的数据,它可以正常工作。
答案 0 :(得分:0)
尝试 -
$('.selector').attr("data-smth","{containment:'.video-section', quality:'large', mute:false, opacity:1}");
答案 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保存回属性