2012-04-28 14 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. 

ただし、タイトルは毎回完全に変更されますが、コンテンツは1回だけ変更されます。

たとえば、最初は正常に動作し、その後は別の時間には動作しません。

これはなぜですか?それはid 'の内容'を破壊するか?私はoutterHTMLを使用していません。そして、もし投与量があれば、タイトルはうまく変わるのですか?


編集:さて、私はそれがPHPの数行で修正されていると思います。 しかし、私はまだ私のサイトでうまくいかないのだろうと思っていますが、Mia DiLorenzoが作ったものは完全にうまくいきます...コードは変数名以外のものとまったく同じです。

+2

あなたのHTML構造がなくても、私たちは本当に助けることができません –

+1

コードは非常に判読不能です。コードが何をしようとしているかを解読するのにかなりの時間がかかります。そして、あなたのHTMLと、それが何をすべきかについての記述がなければ、それがあなたが何かより良いものを期待したり提案したりする方法がうまくいかない理由を伝えることはできません。あなたが私たちにHTMLを見せたら、私たちはそれをずっとずっと良くすることができると確信しています。 – jfriend00

+0

同じ方法で変数名を更新していますか?例えば、 'div id =" container "'と書いたときに、下に 'container'と書く必要があります。(change_、modify_、alter_container) –

答えて

0

私は正確に何をしたいか分からないが、私は$('p')$('op')を変更し、とにかくhttp://jsfiddle.net/69FDT/1/

何かを書き、contentを変更するJavaScriptのラインを一致させるために、いくつかのdivを追加しました。他に何か意味がありましたか?

<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

+0

説明します。どのようなエラーが出ますか?私ができる限り助けてくれるでしょう。 –

0

これはまだ完全な答えではありません(私たちはあなたのHTMLを必要としています)。しかし、私はこの情報が答えのステップにあり、コメントでは伝えられないと思います。 #content項目については

:擬似コードで

(それをより分かりやすくするために)、これはあなたのコードが何をしているかである

  1. op要素をクリックしたのinnerHTMLプロパティを取得します。
  2. '_'をそのinnerHTMLに追加します。
  3. クリックしたop要素のparentNode.idを追加します。
  4. 製造されたIDを使用して、そのオブジェクトを見つけるために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を参照する必要があると思います場合、またはなぜ。

関連する問題