2013-03-01 29 views
0

嗨,我試圖讓警報方法顯示值C8,但它只是說未定義。jquery alert undefined

我是新來的HTML和jQuery;這很簡單,但我不能看到它。

<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript" src="jquery/jquery-1.7.1.js"></script> 
    <script> 
     $(document).ready(function(){ 
     $("button").click(function(){ 
     //$("#div1").load("hs.php"); 
     //$("#div1").load("http://127.0.0.1:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=A1"); 
     $("#div1").load("http://127.0.0.1:81/tenHsServer/tenHsServer.aspx?t=ab&f=ToggleDevice&d=c8"); 
     alert($(this).prev().attr(".class")); 
     }); 
     }); 
    </script> 
    </head> 
    <body> 
    <div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div> 
    <span class='c8'><button>Get External Content</button></span> 
    </body> 
</html> 
+0

你可以把它放在jsfiddle中嗎?另外,我認爲它應該是attr(「class」),沒有「。」。 (期間) – 2013-03-01 22:22:18

+1

@Ohgodwhy最初我認爲這是問題,但它只是可怕的縮進。這裏沒有'.load()'回調。 – 2013-03-01 22:23:39

+0

@馬特球好抓。我會看到自己。 – Ohgodwhy 2013-03-01 22:24:13

回答

0

你不需要的屬性名前點:

alert($(this).prev().attr("class")); 
0

雖然jQuery中的.引入了類選擇,在這種情況下,你只是想叫「下課」的屬性。

取出..class

alert($(this).prev().attr("class")); 
0

您應該使用.attr("class")代替(不.

1

因爲上一個()僅供sibblings。你的按鈕是該div的子項。

你應該去:

alert($(this).parent().attr("class")); 
+0

感謝用父母替換prev並刪除了點 – user2125298 2013-03-01 22:31:53

1

按鈕沒有兄弟姐妹.prev()用來選擇上一個兄弟,你要定位的元素,因此其母公司使用.parent()選擇它。此外,只有當它是選擇器的一部分時,纔會使用點(.)將類添加到該類中。

alert($(this).parent().attr("class"));