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 を返します。つまり"brian".substring("ria")、文字列のインデックス (正の数) を返し、文字列が見つからない場合は -1 を返します。

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