Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery删除函数跟踪_Javascript_Jquery_Dom - Fatal编程技术网

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中的两个问题是:

  • 作用域:
    removeElem
    不在全局作用域中,因为您保留了默认配置选项以在DOM就绪时执行代码。您可以将其更改为“不换行”以使函数成为全局函数

  • 要删除的元素不存在。div元素具有类似“removeXXXp”的ID,并且在事件处理程序中传递“removeXXXs”


这里是另一个更简单的元素移除解决方案(在我看来)。考虑到您的标记:

<div class="scheduleSet" id="remove315p">
    <!-- ... -->
    <a href="javascript:void(0);" class="optionHide">Remove</a>
</div>

您甚至不需要ID。

JSFIDLE中的两个问题是:

  • 作用域:
    removeElem
    不在全局作用域中,因为您保留了默认配置选项以在DOM就绪时执行代码。您可以将其更改为“不换行”以使函数成为全局函数

  • 要删除的元素不存在。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”<代码>打开
会更轻松。你会