2

需要帮助,我尝试降低复杂性并制作简单的示例:

<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">
4

2 回答 2

11

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

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

这是 jQuery 支持的所有属性选择器的列表。

于 2012-11-16T02:30:31.777 回答
2

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

例子:

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

或作为一个班轮

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

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

$("li").each(function(idx, li) {
  if ($(li).attr("id").substring("4")) {
    $(li).hide();
  }
});
于 2012-11-16T02:56:52.167 回答