Javascript Jquery删除函数跟踪
我上周提交了这个问题: 虽然我的例子很简单,但我还是能够解决这个问题(我真的很愚蠢)。目前,我正在尝试使用Javascript Jquery删除函数跟踪,javascript,jquery,dom,Javascript,Jquery,Dom,我上周提交了这个问题: 虽然我的例子很简单,但我还是能够解决这个问题(我真的很愚蠢)。目前,我正在尝试使用.remove在向ajax函数发送输入数组之前,从页面中删除一个完整的div。但是,我根本无法让.remove工作 以下是我的最新尝试: 我在多个浏览器上获得了JSFIDLE上未定义的函数。在我的应用程序中,我绝对没有收到任何错误,但也没有任何效果 我对javascript作用域比较陌生,所以如果问题是作用域方面的,那么请让我知道我是怎么搞砸的 我也尝试过使用.onjquery函数,但考
.remove
在向ajax函数发送输入数组之前,从页面中删除一个完整的div。但是,我根本无法让.remove
工作
以下是我的最新尝试:
我在多个浏览器上获得了JSFIDLE上未定义的函数。在我的应用程序中,我绝对没有收到任何错误,但也没有任何效果
我对javascript作用域比较陌生,所以如果问题是作用域方面的,那么请让我知道我是怎么搞砸的
我也尝试过使用.on
jquery函数,但考虑到我的div id是从服务器(jstl、springmvc等)动态加载的,这就有点混乱了。如果这是一个解决方案,请让我知道如何才能走上正确的轨道
谢谢大家! 我看到您已经在使用jquery了。你为什么不这样做呢:
<div id="foo">This needs to be removed</div>
<a href="#" id="remove" data-remove="foo">Remove</a>
function removeElem(element){
$('#'+element).remove();
}
$(function(){
$("#remove").click(function(){
removeElem($(this).data('remove'));
});
})
这需要删除
函数removeElem(元素){
$('#'+元素).remove();
}
$(函数(){
$(“#删除”)。单击(函数(){
removelem($(this.data('remove'));
});
})
在这里拉小提琴:
它们的工作方式是,使用数据删除
(可以是任何类似于数据xyz btw的东西),将删除链接与div绑定。您可以在稍后单击删除时读取此绑定
如果您是jQuery新手,并且想知道什么是dataremove
,那么它只是一个自定义属性,您可以将它添加到代码中,稍后可以使用元素上的data()
调用来检索它。许多伟大的框架,比如Bootstrap,都使用这种方法
在我看来,使用这种方法的优点是,您可以在UI中的任何位置删除链接,而且它们不需要通过位于div内部而在结构上与div相关。我看到您已经在使用jquery了。你为什么不这样做呢:
<div id="foo">This needs to be removed</div>
<a href="#" id="remove" data-remove="foo">Remove</a>
function removeElem(element){
$('#'+element).remove();
}
$(function(){
$("#remove").click(function(){
removeElem($(this).data('remove'));
});
})
这需要删除
函数removeElem(元素){
$('#'+元素).remove();
}
$(函数(){
$(“#删除”)。单击(函数(){
removelem($(this.data('remove'));
});
})
在这里拉小提琴:
它们的工作方式是,使用数据删除
(可以是任何类似于数据xyz btw的东西),将删除链接与div绑定。您可以在稍后单击删除时读取此绑定
如果您是jQuery新手,并且想知道什么是dataremove
,那么它只是一个自定义属性,您可以将它添加到代码中,稍后可以使用元素上的data()
调用来检索它。许多伟大的框架,比如Bootstrap,都使用这种方法
在我看来,使用这种方法的优点是,您可以在UI中的任何位置删除链接,而不需要将它们放在div内部,从而在结构上与div相关。JSFIDLE中的两个问题是:
- 作用域:
不在全局作用域中,因为您保留了默认配置选项以在DOM就绪时执行代码。您可以将其更改为“不换行”以使函数成为全局函数removeElem
- 要删除的元素不存在。div元素具有类似“removeXXXp”的ID,并且在事件处理程序中传递“removeXXXs”
这里是另一个更简单的元素移除解决方案(在我看来)。考虑到您的标记:
<div class="scheduleSet" id="remove315p">
<!-- ... -->
<a href="javascript:void(0);" class="optionHide">Remove</a>
</div>
您甚至不需要ID。JSFIDLE中的两个问题是:
- 作用域:
不在全局作用域中,因为您保留了默认配置选项以在DOM就绪时执行代码。您可以将其更改为“不换行”以使函数成为全局函数removeElem
- 要删除的元素不存在。div元素具有类似“removeXXXp”的ID,并且在事件处理程序中传递“removeXXXs”
这里是另一个更简单的元素移除解决方案(在我看来)。考虑到您的标记:
<div class="scheduleSet" id="remove315p">
<!-- ... -->
<a href="javascript:void(0);" class="optionHide">Remove</a>
</div>
你甚至不需要ID。我做了一个简单的小提琴,内联的
onclick
没有看到javascript中定义的函数,所以我得到了一个引用错误:myRemove没有定义
通过在js中添加侦听器,.remove()
可以正常工作
抱歉,我不知道是什么导致了行为上的差异
测试一下:
//HTML5
富吧
去
富吧
再去
//js
函数myRemove(名称){
$('#'+name).remove()
};
$('#go2')。单击(函数(){myRemove('removeMe2')});
我做了一个简单的修改,内联的onclick
没有看到javascript中定义的函数,因此我得到了一个引用错误:myRemove没有定义
通过在js中添加侦听器,.remove()
可以正常工作
抱歉,我不知道是什么导致了行为上的差异
测试一下:
//HTML5
富吧
去
富吧
再去
//js
函数myRemove(名称){
$('#'+name).remove()
};
$('#go2')。单击(函数(){myRemove('removeMe2')});
将JSFIDLE设置从“onDomready”更改为“no wrap”。另一个问题是要删除的元素不存在。div元素具有类似“removeXXX p”的ID,并且在事件处理程序中传递“removeXXX s”<代码>打开
会更轻松。删除元素不需要ID,对它的任何引用都可以。使用
上的.on绑定事件处理程序,并使用DOM遍历查找要删除的正确元素。要删除的元素都不在标记中是的,谢谢您指出这一点。某些电话集和时间表集缺少ID。我回去把它修好了,但没有拆除。我使用@FelixKling-answer。将JSFIDLE设置从“onDomready”更改为“no-wrap”。另一个问题是要删除的元素不存在。div元素具有类似“removeXXX p”的ID,并且在事件处理程序中传递“removeXXX s”<代码>打开
会更轻松。你会