Javascript 理解jQuery';AJAX场景中的s.remove()方法
在jQuery In Action第3版的第10章中,有以下代码示例:Javascript 理解jQuery';AJAX场景中的s.remove()方法,javascript,jquery,ajax,Javascript,Jquery,Ajax,在jQuery In Action第3版的第10章中,有以下代码示例: $('#boot-chooser-control') .load('actions/fetch-boot-style-options.php') .change(function(event) { $('#product-detail-pane').load( 'actions/fetch-product-details.php', {
$('#boot-chooser-control')
.load('actions/fetch-boot-style-options.php')
.change(function(event) {
$('#product-detail-pane').load(
'actions/fetch-product-details.php',
{
model: $(event.target).val()
},
function() {
$('[value=""]', event.target).remove();
}
);
});
文档的HTML为(见下文)
在JS snippit的第7行中,只引用了一个HTML元素的值。但是第10行中的选择器(如下所示)
是否以某种方式引用指定上下文中的所有选项元素?第7行中的event.target只选择了一个元素,而第11行中的event.target引用了每个选项元素,这难道不奇怪吗
我错过了什么。。。在我看来,event.target的目标是两个不同的东西。在第7行,它只针对已选择的元素。但是在第11行,它引用了指定上下文中的所有元素这一行选择了上下文
事件.target中的所有元素,并且没有值
此问题描述了以下方法:
因此,它不会删除任何值,而是从dom中删除整个dom对象(即“div”),我想这是在其他地方添加的(如果不是全部代码)。它会删除event.target
节点下具有空值属性的所有元素
例如,如果您有以下DOM:
<div id="target">
<input value="">
<input value="Hello">
<input value="">
</div>
现在生成的DOM如下所示:
<div id="target">
<input value="Hello">
</div>
感谢您以我最终理解的方式解释这一点。我想我只是需要用不同的词来听。你介意看看我修改过的问题吗。如果有任何意义,请注释
元素是您的事件.target
,行$(event.target).val()
返回当前所选选项的值(这就是它的工作方式,请参见此处)。行$('[value=”“],event.target).remove()代码>只是浏览所有没有值的选项并删除它们。您的消息帮助我更好地了解发生了什么。但我已经更新了我的问题。。。你能看一下并评论一下吗
$('[value=""]', event.target).remove();
<div id="target">
<input value="">
<input value="Hello">
<input value="">
</div>
var target = document.getElementById('target');
$('[value=""]', target).remove();
<div id="target">
<input value="Hello">
</div>