如何通过前n个字母获取ID

时间:2017-08-01 08:06:38

标签: javascript html

enter image description here

&# 13;

<g id="test_model/sub1/line_uniq_id_2">
</g>
<g id="test_model/sub1/line2_uniq_id_3">
</g>
&#13;
&#13;
&#13;

我希望在 test_model / sub1 / line_uniq_id _ 之后通过前n个字母提取ID可以有任何数字,所以我怎么能只写 test_model / sub1 / line_uniq_id < / strong>因为可以有任何数字而不是_2。

表示如果我给test_model / sub1 / line_uniq_id_它将把它作为test_model / sub1 / line_uniq_id_anything (任何数字都可以是任何数字)在这种情况下它是2

如果我给test_model / sub1 / line2_uniq_id_它将把它作为test_model / sub1 / line_uniq_id_anything (任何数字都可以是任何数字)在这种情况下是3

2 个答案:

答案 0 :(得分:0)

你需要JavaScript。

您可以使用以test_model/sub1/line_uniq开头的所有ID列表 document.querySelectorAll("[id^='test_model/sub1/line_uniq']")

但由于它们与/ lineX /

不同,因此只会找到<g>之一。{

这个会找到两个

&#13;
&#13;
function getIds() {
  let tags = document.querySelectorAll("g"); 
  let ids=[];
  for (let tag of tags) {
     ids.push(tag.id.split("_").slice(0,-1).join("_")); // use (-1) to just get the number
  }
  return ids;
}
console.log(getIds());
&#13;
<g id="test_model/sub1/line_uniq_id_2">
</g>
<g id="test_model/sub1/line2_uniq_id_3">
</g>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您期望以selector开头的test_model/sub1/line_uniq_id_,那么这就是解决方案。

javascript选择器

var abc = document.querySelectorAll('[id^="test_model/sub1/line_uniq_id_"]');

css选择器

[id^="test_model/sub1/line_uniq_id_"]{
    //some css here
}