0

複数のサムネイル画像 (gengrid 関数で追加された 501.jpg、502.jpg など) をページに追加する必要があります。それぞれのページは、クリックすると別の画像 (port.jpg) を開き、port.jpg が持つ別のサムネイル画像をクリックすると開きます。削除する必要があります。問題は、この場合 removeChild が機能しないことです。誰でも助けてもらえますか...これがコードです

<script type="text/javascript">
var lastper=null;
function gengrid()
      {
          var i=0;
          var num_stud=8;
          var newdiv;
          var divIdName;
          var maindiv;
          for(i=1;i<=num_stud;i++)
          {
             newdiv = document.createElement('div');
             divIdName = '50'+i;
             newdiv.setAttribute('id',divIdName);
             newdiv.setAttribute('onclick','addit('+i+')');
             newdiv.innerHTML = '<img src=50'+i+'.jpg alt="a"></img>';
             maindiv=document.getElementById('main');
             maindiv.appendChild(newdiv);
          }
      }
   gengrid();
   function addit(picno)
      {
          var person = document.getElementById('50'+picno);
          if(lastper)
             lastper.removeChild('portfolio');
          var newdiv = document.createElement('div');
          var divIdName = 'portfolio';
          newdiv.setAttribute('id',divIdName);
          newdiv.innerHTML ='<img src="port.jpg" alt="a"></img>';
          person.appendChild(newdiv);
          alert(picno+''+lastper.id+person.id);
          lastper = document.getElementById('50'+picno);
       } 
  </script>
4

4 に答える 4

0

主な問題は、文字列を removeChild 呼び出しに渡すことです。使用する

lastper.removeChild(document.getElementById('portfolio'));

代わりにその問題を修正します。

あなたが持っているアラートは二次的な問題です。「lastper」が null であり、id プロパティがないため、最初は失敗します。

于 2013-09-10T09:34:21.647 に答える
0
if(lastper){
         lastper.removeChild('portfolio');return;}
于 2013-09-10T08:51:17.797 に答える