2012-04-28 68 views
0

我試圖做到這一點,當用戶點擊導航菜單時,標題會更改爲該標題,主內容也會發生更改。我寧願試着避免爲此使用框架。getElementById('___')。innerHTML銷燬元素的ID?

$('op').click(function(){ 
    document.getElementById('title').innerHTML=this.innerHTML + ((this.innerHTML.indexOf("'s")==this.innerHTML.length-2) ? " " : "'s ") + this.parentNode.id + " | Le Lepids"; 
    document.getElementById('content').innerHTML=document.getElementById(this.innerHTML + '_' + this.parentNode.id).innerHTML; 
}); 
// If the code looks ugly and you can't read it, just tell me. 

儘管每次都會改變標題,但內容只會改變一次。

例如它會在第一時間正常工作,然後在其他時間不工作。

這是爲什麼?它是否會破壞身份證'內容'?雖然我沒有使用outterHTML。如果劑量,爲什麼標題改變很好?


編輯:好的,所以我覺得我得到它固定PHP的幾行。 但我仍然想知道爲什麼它不能在我的網站上工作,而Mia DiLorenzo做得非常好......代碼與變量名稱完全相同。

+2

沒有你的HTML結構,我們真的不能幫忙 – 2012-04-28 01:51:14

+1

代碼是非常不可讀的。解密你的代碼試圖做的事情需要很長時間。而且,沒有你的HTML和它應該做什麼的描述,我們不能告訴你爲什麼它不按你期望的方式工作,或者提出更好的建議。如果您向我們展示HTML,我相信我們可以做得更好,比現在好得多。 – jfriend00 2012-04-28 02:05:22

+0

你是否以同樣的方式更新變量名?例如,當我寫'div id =「container」'的時候,他們有一種關係,我必須在下面寫下'container'(change_,modify_,alter_container) – 2012-04-29 01:03:27

回答

0

我不知道你想要什麼,但我寫的東西反正http://jsfiddle.net/69FDT/1/

我改變$('op')$('p'),並添加一些div來匹配你的Javascript線改變content。你的意思是別的嗎?

<div id="container"> 
    <div>Click on these words</div> 
     <p>change</p> 
     <p>modify</p> 
     <p>alter</p> 
    <br> 
     <div id='title'>Title</div> 
     <div id='content'>content</div> 
<br> 
     <div id="change_container">change placeholder div</div> 
     <div id="modify_container">modify placeholder div</div> 
     <div id="alter_container">alter placeholder div</div> 
    </div>​ 
+0

這正是我所要做的。但它仍然不能在我的頁面上工作。 – TootsieRoller 2012-04-29 00:26:22

+0

解釋。你會得到什麼錯誤?我會盡我所能提供幫助。 – 2012-04-29 00:27:44

0

這還不是一個完整的答案(我們需要你的HTML),但我認爲這個信息是在一個答案的步驟,它不能在評論中傳達。

在僞代碼(以使其更容易理解),這就是你的代碼是這樣做的:

對於#content項目:

  1. 獲取點擊的innerHTML op元素。
  2. '_'添加到該innerHTML。
  3. 添加點擊op元素的parentNode.id。
  4. 使用該製造編號,對其執行document.getElementById()查找對象。
  5. 獲取該對象的innerHTML並將該innerHTML放入#content項目中。

對於#title項目:

  1. 獲取點擊op元素的innerHTML。
  2. 如果該HTML以"'s"結尾,則將" "添加到innerHTML上,否則添加"'s"
  3. 將parentNode.id添加到該節點上。
  4. " | Le Lepids"加上。
  5. #title項目的innerHTML設置爲該結果。

我能想到的,爲什麼#content項目可能總要得到設置爲同一個項目或爲什麼它可能只是有時工作幾個原因,但我們不得不看到您的實際HTML肯定知道其中發生在或爲什麼。