2011-04-08 96 views
2

在這裏,我嘗試在頁面中添加內容時遇到了一些麻煩。添加內容問題

<body>  
    <div id="wrapper"> 
     <div id="nav"> 
      <ul> 
       <li><a href="#"><span>exercizeI</span></a></li> 
       <li><a href="#"><span>exercizeII</span></a></li> 
       <li><a href="#"><span>........</span></a></li> 
       <li><a href="#"><span>........</span></a></li> 
      </ul> 
     </div> 
     <div id="content"></div> 
    </div> 
    </body> 

所以I'be試圖使用這段代碼並沒有奏效

var table1='<table>..some content..</table>}'; 
$('#nav li a:eq(1)').click(function(){$('#content').innerHTML='habarlaaaa';}); 

然後嘗試這一個

function press(){ 
var but = document.getElementById('wrapper').getElementById('nav').getElementsByTagName('ul')[0].getElementsByTagName('li')[1].getElementsByTagName('a')[0]; 
var table1='<table>..some content..</table>}'; 
var content = document.getElementById('wrapper').getElementById('content'); 
but.onclick=function(){content.innerHTML=table1}; 
}; 

..和它被成爲更糟給我:

Uncaught TypeError:Object#has no method'getElementById'

錯誤

這究竟是爲什麼?

BR,斯蒂芬

+1

予移除,以[AJAX](http://en.wikipedia.org/AJAX)的參考文獻中,由於這個問題實際上不涉及具體AJAX。 – Chowlett 2011-04-08 13:59:15

+0

好的,我看到我的壞 – kidwon 2011-04-08 14:01:34

+1

做'getElementById()。getElementById()'沒有意義。 'id'-s在html文檔中是(應該是)唯一的,所以你只需要一個'getElementById'調用(無論如何它都是'document'方法)。 – 2011-04-08 14:02:40

回答

3

使用jQuery你可以使用這樣的HTML()函數:

$('#nav li a:eq(1)').click(function(){$('#content').html(table1);}); 
2

到內容DIV中添加數據:

$('#content').append("data"); 

之所以你第二次嘗試失敗是因爲您正在將getElementById()應用於前一個「getElementById()」的結果。

1

在你的第一個Javascript代碼你是混合的DOM方法和jQuery代碼的概念。請嘗試以下代碼

$('#nav li a:eq(1)').click(function(){$('#content').eq(0).html('habarlaaaa');}); 

不同的是,不是

$('#content').innerHTML = '......'; 

你應該使用

.eq(0).html('habarlaaaa') 
1

與文森特同意的理由是,當你使用jQuery函數,$,你沒有得到一個DOM元素,而是你得到一個代表你選擇的jQuery對象。有一些方法可以做到這一點,其中之一@ vincent-ramdhanie已經提到過。如果你想獲得在實際的DOM元素,您可以執行此:

$('#content')[0].innerHTML='habarlaaaa'; 

或本:

$('#content').get(0).innerHTML='habarlaaaa'; 

記住:innerHTML是一個DOM元素,而不是一個jQuery對象的屬性。