在AJAX场景中理解jQuery的.remove()方法

时间:2016-04-06 21:08:08

标签: javascript jquery ajax

在jQuery In Action第3版的第10章中,有以下代码示例:

where object_id = object_id('$SchemaQualifiedObjectName$')

该文件的HTML是(见下文)

$('#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();
            }
          );
       });

如何使用以下代码

 <select id="boot-chooser-control" name="model"><option value="">choose a style</option>
     <option value="7177382">Caterpillar Tradesman Work Boot</option>
     <option value="7269643">Caterpillar Logger Boot</option>
     <option value="7141832">Chippewa 17" Engineer Boot</option>
  </select>
JS snippit的第7行中的

指的是只有一个HTML元素的值。但是第10行(见下文)中的选择器非常相同

model: $(event.target).val()

以某种方式引用指定上下文中的所有选项元素?第7行中的event.target只选择一个元素是不是很奇怪,而第11行它指的是每个选项元素?

我错过了什么......对我而言,event.target似乎针对两种不同的东西。在第7行,它定位JUST已被选中的元素。但是在第11行,它引用了指定上下文中的所有元素

2 个答案:

答案 0 :(得分:0)

此行选择上下文event.target中没有值的所有元素。

此问题描述了方法:Multiple Parameters for jQuery selector?

所以它不会删除任何值,而是删除一个完整的dom对象(fe a&#34; div&#34;),我想,这是其他地方添加的(如果那不是全部代码)

答案 1 :(得分:0)

它从DOM中删除event.target节点下具有空值属性的所有元素。

例如,如果你有以下DOM:

<div id="target">
    <input value="">
    <input value="Hello">
    <input value="">
</div>

然后运行以下jQuery:

var target = document.getElementById('target');
$('[value=""]', target).remove();

生成的DOM现在将是:

<div id="target">
    <input value="Hello">
</div>
相关问题