2011-11-12 45 views
0

如何從外部文件加載div內容,並在過程中使用case語句?可能有我的JQuery代碼的東西?其實..我很困惑?從外部html文件加載JQuery切換case語句?

jQuery代碼:

$('.click-test').click(function() { 
switch (this.id) { 
case "test": 
$('#test').load('external-file.html #test'); 
    break; 

    case "test2": 
    etc.. 
    }); 

html頁面:

<div class="click-test" id="test">click test</div> 
<div id="test">place words from external file here</div> 

外部文件的.html

<div id="test">some words</div> 

回答

0

jquery代碼基本上是正確的。 「this」會引用您懷疑並設置的HTML元素。所以,你的交換機正在工作。

<div class="click-test" id="test">click test</div> 

但是,您的基本HTML頁面中有2個div,它們的ID都是「test」。每個ID在HTML頁面上都應該是唯一的(包括您正在加載的內容)。所以,你需要做一些重構。

例如,您可以更改HTML到:

<div class="click-test" data-loadid="test">click test</div> 

和JavaScript來:

$('.click-test').click(function() { 
    switch($(this).attr("data-loadid")) { 

這從使用jQuery attribute功能名爲 '數據loadid' 的屬性讀取。然後,您可以繼續使用加載來加載外部div內容。 (雖然,你可能想刪除書籤,因爲它是不必要的?)

0

的this.id [R因爲這個對象是沒有ID屬性的.click-test div,所以沒有任何問題。一切看起來不錯,除了我不知道是否應該有一個空格吧之後.html #test

+0

這兩個div都有一個ID屬性,正如我在我的回答中提到的。不幸的是,它們是一樣的。 – WiredPrairie

+0

嗯,我想我錯過了第一次閱讀它。然後問題是,你有兩個相同的ID,你不能有兩個相同的ID,jQuery會找到第一個,並且不尋找其他的。 – Niels