1

以下で作成した変数を使用して.attr()、どのように設定できますか?iframeattrs

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 は属性を取得せず、エラーはドロップされません。

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

私も.attr(eval(attrs))同じ問題を試しました。

4

1 に答える 1

5

セッターとして使用される.attr()関数は、他の選択肢の中でもオブジェクトを受け入れます。ただし、attrs文字列であり、その場合はセッターとしてではなくゲッターとして反応します。

受け取った情報をそのまま渡す必要があると思います。

iosocket.on('content', function(attrs) {
  $('<iframe></iframe>').attr(attrs).appendTo('#in');
});
于 2013-01-13T16:25:25.753 に答える