在jQuery中使用部分ID查找完整的id

时间:2015-04-23 10:15:04

标签: jquery html

我遇到了需要在 jQuery中使用部分ID找到完整ID的情况。假设我有以下HTML元素

       <div id="Partial_Known_Id">
          <span>
          </span>
       </div>

如何使用部分ID获取上述元素的完整ID?

假设我知道它以 Partial _ 开头。 我试过下面的

var b = $('[id*="Partial_"]');

但它似乎不起作用。

无论如何,我可以在某个变量中获得完整的id?

3 个答案:

答案 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的开头匹配。

eachmap的实例:

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)

您使用了错误的选择器。

var b = $('[id^="Partial_"]').attr('id');

查看documentation了解详情。