我看到了像这样的ID选择器的实现:
$("*[id*=foo]").val()
为什么使用它,它类似于jQuery中的id选择器吗?主要区别是什么?请解释一下
更新了答案
$("*[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 />
希望对您有所帮助。