2011-01-29 9 views
11

JavaScriptでHTMLオブジェクト要素のデータ属性値をどのように変更しますか?JavaScriptでHTMLオブジェクト要素のデータ属性値を変更する方法

<html> 
<head></head> 
<body> 

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object> 

<script type="text/javascript"> 
    var element = document.getElementById("htmlFrame"); 
    element.setAttribute("data", "attributeValue"); 
</script> 

</body> 
</html> 

Webブラウザそれで開いて、ファイルにこれを入れた場合は、Javascriptを実行し、そして「します:ここで

は私が

<object type="text/html" id="htmlFrame" style="border: none;" standby="loading" width="100%"></object> 

var element = document.getElementById("htmlFrame"); 
element.setAttribute("data", "http://www.google.com"); 
+0

を試してみましたか?何がうまくいかなかったのですか?あなたはあなたのHTMLとJavaScriptを投稿できますか? – Oded

答えて

9

とjQueryで:

$('element').attr('some attribute','some attributes value') 

すなわち

$('a').attr('href','http://www.stackoverflow.com/') 
33

をしようとしています。これは、どのような作品ですデータ "属性+値がオブジェクト要素に追加されます。

注: HTMLソースを見ると、属性が表示されません。これは、ブラウザが動的にレンダリングされたDOMではなく、Webサーバーによって送信された静的ソースを表示しているためです。 DOMを調べるには、Firebugのようなツールを使用します。これはブラウザがどのDOMをレンダリングしたかを示し、追加された属性を見ることができます。

Firefox + FirebugまたはGoogle Chromeを使用すると、ページの一部を右クリックして[要素の検査]を実行できます。これによりレンダリングされたDOMのビューが表示されます。

+0

私は果物を試しましたが果物はありません。お試しいただきありがとうございます。 – user587159

+0

@ user587159 - 私の修正回答をご覧ください。 –

1

ホストの挙動は、<object>起因ECMA262実装にsetAttribute()方法により依存し、属性セットが失敗する可能性があるオブジェクト。

私は2つのソリューションを参照してください。

  1. ソフト:element.data = "http://www.google.com";ハード

  2. :DOMツリーからオブジェクトを削除し、変更されたデータ属性を使用して新しいものを作成します。

0

次のコードは、jQueryのJavaScriptで

$("object").replaceWith('<object data="http://www.google.com"></object>'); 
0
document.getElementById("PdfContentArea").setAttribute('data', path); 

OR

var objectEl = document.getElementById("PdfContentArea") 

objectEl.outerHTML = objectEl.outerHTML.replace(/data="(.+?)"/, 'data="' + path + '"'); 
関連する問題