2011-09-19 171 views
2

我正在創建一個變量,該變量等於已被點擊的<a>的文本,然後在if/else語句中使用該變量,但無法使其工作。我知道這個變量是正確的,我知道這個函數可以工作,因爲我可以用一個「whatever.html」代替它並且它可以工作。但是我不能讓該變量在其工作場所:在if/else語句中使用變量

$(".themenu a").click(function(){ 
      var stuff = $(this); 
      if (stuff == "Home"){ 
       $.get("main.html", function(data){ 
       $(".content").append(data); 
      }, "html"); 
    } 
+0

如果你想HTML出現在與'字符您的問題引號,(我已經更新了你的問題要做到這一點)。 – nnnnnn

+0

我想你必須改變第二行到'var stuff = $(this).text();' – Teneff

回答

6

$(this);將讓你一個jQuery對象,而不是它的文本,這樣就不會等於"Home"。使用

var stuff = $(this).text(); 

var stuff = $(this).html(); 
4

你設置你的stuff變量引用由$(this),返回的jQuery對象,當你真正想要的是什麼元素在jQuery對象,如文本所以:

var stuff = $(this).text(); 

編輯:請注意,在點擊處理this將等於<a>元素,你也可以這樣做:

var stuff = this.innerHTML; 
2

您的選擇器選擇作爲對象的<a>節點。如果您想使用它進行比較,您首先必須獲取該標籤的值,ID或內容。

var stuff = $(this); 

現在,stuff包含表示<a href="url">Home</a>元件的DOM對象。 你想要的是提取標籤之間的位。

var innerStuff = stuff.text(); 

,當然您也可以直接:

var stuff = $(this).text(); 
0

你應該做的,而不是var stuff = $(this).text();

+1

+1來平衡不明原因的-1(不知道爲什麼這是被拒絕的時候它是正確的,雖然這是一個重複的答案)。 – nnnnnn

0

嘗試:

var stuff = $(this).text(); 
+0

+1來平衡不明原因的-1(不知道爲什麼這是正確的,但它是一個重複的答案)。 – nnnnnn