0

ユーザーがナビゲーションメニューをクリックすると、タイトルがそのタイトルに変わり、メインコンテンツも変わるようにしようとしています。これにはフレームの使用を避けたいと思います。

$('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.

ただし、タイトルは毎回完全に変わりますが、内容は一度しか変わりません。

たとえば、最初は正常に機能し、その後は機能しません。

これはなぜですか?ID「コンテンツ」を破壊しますか? 私はoutterHTMLを使用していません。そして、線量の場合、なぜタイトルがうまく変わるのですか?


編集: わかりましたので、数行の PHP で修正したと思います。しかし、Mia DiLorenzo が作成したものは完全に機能するのに、なぜ私のサイトでは機能しないのか、まだ疑問に思っています... コードは変数名以外はまったく同じです。

4

2 に答える 2

0

これはまだ完全な答えではありませんが(そのためにはHTMLが必要です)、この情報は答えへのステップにあり、コメントで伝えることはできないと思います。

擬似コード(より理解しやすくするため)では、これがコードの実行内容です。

#contentアイテムの場合:

  1. opクリックされた要素のinnerHTMLを取得します。
  2. '_'そのinnerHTMLに追加します。
  3. クリックされた要素のparentNode.idを追加しますop
  4. その製造されたIDを使用してdocument.getElementById()、オブジェクトを見つけるためにそれを実行します。
  5. そのオブジェクトのinnerHTMLを取得し、そのinnerHTMLを#contentアイテムに配置します。

#titleアイテムの場合:

  1. opクリックされた要素のinnerHTMLを取得します。
  2. そのHTMLがで終わる場合は、innerHTMLに追加します。それ以外の場合は、を追加し"'s"ます。" ""'s"
  3. その上にparentNode.idを追加します。
  4. それに追加" | Le Lepids"します。
  5. #titleアイテムのinnerHTMLをその結果に設定します。

アイテムが常に同じアイテムに設定される理由や、たまにしか機能しない理由はいくつか考え#contentられますが、実際のHTMLを確認して、いつ、なぜ発生するかを確認する必要があります。

于 2012-04-28T01:54:44.403 に答える
0

あなたが何を望んでいるのか正確にはわかりませんが、とにかく何かを書きましたhttp://jsfiddle.net/69FDT/1/

Javascript の変更行に合わせて、いくつかの divを変更$('op')して追加しました。別の意味でしたか?$('p')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>​
于 2012-04-28T02:03:22.467 に答える