2011-08-24 106 views
1

我有一個文件,說'file1.html',通過jQuery加載到一個div $('#info').load('info/file1.html');我想改變文件內的#info內容1這樣的file1.html看起來像這樣:從外部文件內使用外部文件替換外部文件

<a href="#" onclick="loadFile(this.value);" value="file2">File2</a> 

其中

function loadFile(f) { 
    $('#info').load('info/'+f+'.html'); 
} 

不過,我只在點擊後的DIV得到一個空白頁。我也嘗試刪除'info/',如果文件夾設置破壞它,但沒有。怎麼了?

+0

你CONSOLE.LOG(F)? – benhowdle89

回答

3

問題是錨標記dom對象(HTMLAnchorElement)沒有設置「value」屬性。要獲取dom對象所代表的定位標記的值屬性,您可以執行$(this).attr('value')(而不是this.value,這將只是未定義的)。

但是真的,你應該使用id/class和jquery附加你的事件,而不是使用onclick屬性。您應該調用您的錨定屬性data-value而不是value,以符合自定義屬性上的HTML5規範。所以更好的方式來做到這一點是:

HTML:

<a href="#" id="file-loader" data-value="file2">File2</a> 

的Javascript:

$('#file-loader').click(function(ev) { 
    $('#info').load('info/' + $(this).attr('data-value') + '.html'); 
    ev.preventDefault(); 
}); 
+0

這個工作很好,你在4分鐘內得到你接受的答案。謝謝你的父親! –

0

用途:

<a href="#" onclick="loadFile('file2');">File2</a> 
+0

它以前用來加載一個空白頁面,現在它根本不加載任何東西? –