在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行,它引用了指定上下文中的所有元素
答案 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>