我有一些带有id和“结果框”的按钮,在按下任何按钮时,我的jquery代码会获取按钮ID并将其放在结果框中。
其中一个按钮是“删除”按钮,此按钮应使用代码$("#resultbox").remove( x );
删除最后放置的ID但不是
这是我的代码:
$( "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;
}
});
答案 0 :(得分:1)
什么是event
?
您应该指定为参数:
$( "button" ).click(function(event) {
处理程序(eventObject)传递
类型:功能()
每次触发事件时执行的功能。
此外,您只是按文字添加元素,因此您可以像这样删除:
$( "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;
}
});
答案 1 :(得分:1)
如果您必须删除id
的后代,则需要在#
的选择参数中为remove()
添加前缀#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;
}
});
答案 2 :(得分: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;
}
});
答案 3 :(得分:0)
我想你想这样做:
$('#result').last().remove();
这将获取容器中的最后一个元素并将其删除..
答案 4 :(得分:0)
它不像这样工作。 X是您要附加的内容的副本,而不是附加的元素本身。至于那个,$ ...... append将返回一个刚刚创建的对象。如果将此对象提供给remove语句,它将按预期工作。