隐藏ID中具有特定编号的所有元素

时间:2012-11-16 02:29:22

标签: javascript jquery

需要帮助,我试图削减复杂性并做出简单的例子:

<div id="tree_div">
   <ul>
      <li id="tree_li_401">401</li>
      <li id="tree_li_101">101</li>
      <li id="tree_li_301">301</li>
      <li id="tree_li_201">201</li>
      <li id="tree_li_102">102</li>
      <li id="tree_li_402">402</li>
   </ul>
</div>

我需要根据在tree_li之后的第一个数字隐藏所有li元素

例如:我需要在 tree_li _ 之后隐藏所有数字 4 的元素:

<li id="tree_li_402">
<li id="tree_li_401">

2 个答案:

答案 0 :(得分:11)

您可以使用属性选择器来定位这些元素:

$('li[id^="tree_li_4"]').hide();

这是jQuery支持的所有attribute selectors的列表。

答案 1 :(得分:2)

如上所述,您可以使用属性选择器,如果您想要所有这些方法的解决方案,请使用.each()方法,并且您可以使用变量作为数字。

示例:

$("li[id='tree_li_'"+ magicNumber +"]").each(function (idx, li) {
  $(li).hide();
});

或作为一个班轮

$("li[id='tree_li_'"+ magicNumber +"]").hide();

如果你想变得非常疯狂,可以使用.substring()方法。 如果字符串具有指定的子字符串,则.substring返回true。 即"brian".substring("ria")将返回字符串的索引(正数) 如果找不到字符串,则返回-1。

$("li").each(function(idx, li) {
  if ($(li).attr("id").substring("4")) {
    $(li).hide();
  }
});