我看到了ID选择器的实现,如下所示:
$("*[id*=foo]").val()
为什么要使用它并且它与jQuery中的id选择器类似?主要区别是什么?请解释
答案 0 :(得分:3)
更新回答
$("*[id*=foo]").val()
与$("#foo").val()
不相似:
$("#foo")
选择id
“foo”的元素。
$("*[id*=foo]")
选择id
属性包含“foo”的任何元素。
检查此示例,我使用了input id="fooAndSomeText"
:
console.log( $("*[id*=foo]").val() );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="fooAndSomeText" value="bar" disabled />
⋅ ⋅ ⋅
旧答案
在问题格式正确之前,改变其含义!
$("[id=foo]").val()
和$("#foo").val()
会做同样的事情
#
是定位id
的简写。
第一种语法在这里更长,没有理由使用它。
但是,当您想要使用特定属性值定位元素时,此语法非常有用。使用input
检查此示例:
console.log( $("[name=foo]").val() );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="foo" value="bar" disabled />
希望它有所帮助。