2013-12-22 117 views
-1

我有一些按鈕與ID和一個「結果框」,按下任何按鈕我的jQuery代碼採取按鈕ID並將其放置在結果框中。
一個按鈕是「刪除」按鈕,這個按鈕應該使用的代碼$("#resultbox").remove(x);刪除最後放置的ID,但它不會
這裏是我的代碼:.append()的反向(刪除元素)

$("button").click(function() { 
    x = event.target.id; //takes the id of the button 
    switch (x) 
    { 
    case "del": 
     **$("#resultbox").remove(x); //here it should delete last placed id but it doesn't work** 
     break; 
    default: 
     $("#resultbox").append(x); 
     break; 
    } 
}); 
+1

'event'是不是在你的代碼中定義。 – undefined

回答

1

您需要在remove()的選擇器參數中加上id#的前綴,如果必須刪除#resultbox的後代。

$("#resultbox").remove("#"+ x); 

作爲元素的ID應該是唯一的,您可以直接刪除元素

$("#"+ x).remove(); 

編輯根據意見,並現場演示

Live Demo

$("button").click(function() { 
    x = this.id;  
    switch (x) 
    { 
    case "del": 
     text = $("#resultbox").text() 
     $("#resultbox").text(text.substring(0,text.length-1)); 
     break; 
    default: 
     $("#resultbox").append(x); 
     break; 
    } 
}); 
+0

它不工作:(,這裏的小提琴:http://jsfiddle.net/w2kG6/ – System32

+0

你可能需要這個,http://jsfiddle.net/w2kG6/2/ – Adil

+0

要刪除所有你需要的文本,$(「#resultbox」)。text(「」) – Adil

0

我想你想這樣做:

$('#result').last().remove(); 

這將拿起的最後一個元素的容器,並刪除它..

+0

它不工作:(,這裏的小提琴:http://jsfiddle.net/w2kG6/ – System32

1

什麼是event

應指定爲參數:

$("button").click(function(event) { 

檢查jQuery click documentation

處理器(eventObject)傳遞

類型:Function()

的函數每次執行事件被觸發。

而且,你只是通過文字添加元素,這樣可以去除這樣的:

$("button").click(function(event) { 
    var id = this.id; // the actual button 
    switch (id) 
    { 
     case "del": 
      var text = $("#resultbox").text(); 
      if (text.length >= 1) 
      { 
       text = text.substring(0, text.length - 1); 
       $("#resultbox").text(text); 
      } 
      break; 
     default: 
      $("#resultbox").append(id); 
      break; 
    } 
}); 

Example on jsFiddle

+0

它不工作:(,這裏的小提琴:http://jsfiddle.net/w2kG6/ – System32

+0

喔它的工作現在,謝謝非常感謝。 你能告訴我哪個好,你的答案或者說我接受? – System32

+0

@ System32下你接受使用'x'沒有宣佈它的人,這可能會導致一個錯誤的人,取決於你的整個代碼的上下文。但對於。臨時瓦爾一樣,你應該總是聲明它自己的函數中聲明,一旦'變種x'而不是僅僅使用'x'而沒有申報的 – BrunoLM

0

它不會像這樣工作。 X是你正在追加的內容的副本,而不是附加的元素本身。至於那,$ ...... append將會返回一個你剛創建的對象。如果您將此對象提供給remove語句,它將按預期工作。

1

這是你的工作計算器..

你受到嚴重混亂的id選擇代碼。我試着改進它..

http://jsfiddle.net/w2kG6/3/

$("button").click(function() { 
    var _self = $(this); 
    var _attr = _self.attr('id'); 

    console.log(_attr); 
    switch (_attr) 
    { 
    case "del": 
     var str = $("#resultbox").text(); 
     if($("#resultbox").length > 0) 
      $("#resultbox").html(str.substring(0,str.length - 1)) 
     break; 
    default: 
     $("#resultbox").append(_attr); 
     break; 
    } 
}); 
+0

哦,它現在工作,非常感謝。你能告訴我哪個更好,你的答案還是兩者都下降了? – System32

+1

這一個好得多... :-)如果你認爲這是正確的答案,可以點擊upvote/tick作爲答案。讓我們來幫助別人! –