我遇到了需要在 jQuery中使用部分ID找到完整ID的情况。假设我有以下HTML元素
<div id="Partial_Known_Id">
<span>
</span>
</div>
如何使用部分ID获取上述元素的完整ID?
假设我知道它以 Partial _ 开头。 我试过下面的
var b = $('[id*="Partial_"]');
但它似乎不起作用。
无论如何,我可以在某个变量中获得完整的id?
答案 0 :(得分:4)
如果你想知道id
的所有,你需要一个循环,例如:
var b = $('[id*="Partial_"]');
b.each(function() {
console.log(this.id);
});
该循环可以在您的代码中(如上所述),也可以在jQuery的代码中:
var ids = $('[id*="Partial_"]').map(function() { return this.id; }).get();
后者为您提供匹配id
s。
请注意,如果知道 id
以“Partial_”开头,则可以使用^=
而不是*=
。 *=
将匹配字符串; ^=
只会在id
的开头匹配。
each
和map
的实例:
var b = $('[id*="Partial_"]');
snippet.log(b.length + " found using `*=`:");
b.each(function() {
snippet.log(this.id);
});
snippet.log("As an array: " + b.map(function() {
return this.id;
}).get().join(", "));
snippet.log("---");
b = $('[id^="Partial_"]');
snippet.log(b.length + " found using `^=`:");
b.each(function() {
snippet.log(this.id);
});
snippet.log("As an array: " + b.map(function() {
return this.id;
}).get().join(", "));
<div id="Partial_1"></div>
<div id="Partial_2"></div>
<div id="Partial_3"></div>
<div id="blah_Partial_foo"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
答案 1 :(得分:0)
使用.attr()
:
var b = $('[id^="Partial_"]').attr('id');
*
似乎更慢,因此最好使用^
插入符号表示以开头。
答案 2 :(得分:-1)