あなたは次の2行を実行します。
var navSub = document.getElementById('subNav').innerHTML;
var navContent = document.getElementsByClassName('pageNav')[0].innerHTML;
あなたはこれら二つのオブジェクトからHTMLテキストを取得し、二つの変数に格納されているが。 2つの通常のJavaScript変数があり、それぞれに文字列があります。
あなたがして行うと:
navSub = navContent;
あなただけnavSub javascriptの変数にnavContent文字列を割り当てています。 DOMには何ら影響しません。これらは2つの文字列変数です。あなたはDOMでnavSubオブジェクトの内容を変更したい場合は
、あなたがこれを行うことができます。これに
var navContent = document.getElementsByClassName('pageNav').innerHTML;
:また
var navSubObj = document.getElementById('subNav');
var navContent = document.getElementsByClassName('pageNav')[0].innerHTML;
navSubObj.innerHTML = navContent;
を、私はこれを変更しなければならなかったことに注意してください:
var navContent = document.getElementsByClassName('pageNav')[0].innerHTML;
getElementsByClassName()
はオブジェクトではなく配列を返します(multiplicit e項目)。 getElementById()
は1つのオブジェクトしか返さないので、この点に関してはgetElementById()
とは異なります。
うーん、妥当な音。しかし、.inner HTMLはゲッターメソッドの下にありますか?私はそれが何であるかを意味します。それは不思議なことです、プロパティへの参照をショートカットにコピーできませんか? – jAndy
javascriptでは、.innerHTMLはオブジェクトのプロパティと同じように動作します。それを設定することもできますし、取得することもできます。内部的には、そのプロパティを取得または設定する際に内部的に適切な処理を行います。 '.innerHTML'プロパティ自体への参照を取得することはできません。これは、プロパティへの参照ではなく、プロパティの現在の値を取得します。 – jfriend00
が正しくありません。プロパティの種類によって異なります。プロパティの後ろに 'オブジェクト 'がある場合は、もちろん参照を取得します。しかし、あなたは原始的な価値について正しいです。 – jAndy