javascript - 无法使用 .attr() 设置多个属性

标签 javascript jquery

如何使用下面制作的变量 attrs 设置我的 iframe.attr()

iosocket.on('content', function (object) {
    var attrs = '';
    for (var key in object) {
        attrs = attrs.concat(",'" + key + "':'" + object[key] + "'");
    }
    attrs = '{' + attrs.substring(1) + '}';
    console.log(attrs);
    var i = $('<iframe></iframe').attr(attrs);
    $('#in').append(i);
});

console.log 说得对,但它不起作用,我的 iframe 从未获得 attrs,也没有丢弃任何错误。

{'width':'853','height':'480','src':'https://www.youtube-nocookie.com/embed/qNaknTgIbIg?rel=0','frameborder':'0','allowfullscreen':''}

我也尝试过 .attr(eval(attrs)),同样的问题。

最佳答案

.attr() 函数在用作 setter 时接受 Object 以及其他选项。但是,attrs 是一个字符串,在这种情况下,它将作为 getter 而不是 setter 来响应。

我怀疑您需要在收到信息时传递信息。

iosocket.on('content', function(attrs) {
  $('<iframe></iframe>').attr(attrs).appendTo('#in');
});

关于javascript - 无法使用 .attr() 设置多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14305413/

相关文章:

javascript - 从 jQuery 流程图中打印出来

javascript - 如何在不更改 map 中心的情况下在谷歌地图中加载 KML

javascript - 使用单个新事件覆盖绑定(bind)到元素的所有 JavaScript 事件

javascript - Bootstrap 3 nav-pills,事件类仅在我单击分配的元素后才有效

javascript - 遍历 DOM 对象以查找特定元素

javascript - 添加onclick javascript时html中的输入标签不发送POST变量

JavaScript 语法空 {}

javascript - 如何在 JS 中创建重用返回结果的可变高阶函数

php - 从数据库轮询选择中获取百分比结果

jquery - 如何使用backbone.js制作搜索表单