这是有趣的.
HTML:
<label name="foo"></label>
<span name="foo"></span>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var foo = $('[name="foo"]');
if (foo.is("span")) {
foo.html('haha');
}
Run Code Online (Sandbox Code Playgroud)
这两个label和span将具有相同的HTML文本.但是,如果删除<span>,则标签不会更改其HTML.有什么理由,以及如何恰当地区分它们?如果你改变也是如此if(foo.is("span")),以if(foo.is("label"))
当你使用
var foo = $('[name="foo"]');
Run Code Online (Sandbox Code Playgroud)
一个元素集合选择匹配将被退回.要从中选择单个元素,请对其进行迭代.使用is一个jQuery对象将返回true如果匹配的集合中的任何元素满足该条件.
根据选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true.
使用.each():
$('[name="foo"]').each(function() {
if ($(this).is("span")) {
$(this).html('haha');
}
});
Run Code Online (Sandbox Code Playgroud)
以上代码仅用于Demo目的,下面的代码相当于上面的代码.
$('span[name="foo"]').html('haha');
Run Code Online (Sandbox Code Playgroud)