2017-04-01 10 views
0

コンテンツディビジョン内のすべてのidsを検索し、hrefを先行して検索しています。私は子供のIDが何であるかを予測することができないので、それはとにかくそれを前置きします。フィルタリング時にjqueryがidsを無視するようにするには

jqueryでdomを検索しても、cetain divのIDとその子を無視するにはどうすればよいですか?

  $('*[id]').each(function() { 
      var selectVariable = this; 
      $(selectVariable).prepend('<a href="#" class="" id="' + $(selectVariable).attr('id') + '">*</a>'); 
     }); 

     <div id='content'> 
      <!-- How do I stop the jquery from prepending `id='I can predict'` and all its children--> 
      <div id='I can predict'> 
       <div id='I can't predict'> 
       </div> 

        <div id='I can't predict'> 
        </div> 
      </div> 

      <div id='another piece of content'> 
        <div id='I can't predict (but needs an a link)'> 
        </div> 
      </div> 
     </div> 
+0

例HTMLのID値が重複しています。また、不均衡な引用符の問題もあります。 – trincot

+0

HTMLのid属性値にはスペースも使用できません。 – trincot

答えて

1

あなたは一部を除外するために.not($('#I_can_predict, #I_can_predict *'))を使用することができます。

if (!$(selectVariable).parents('#I_can_predict').length && 
    selectVariable.id != 'I_can_predict') { 
     $(selectVariable).prepend('<a href="#" class="" id="' + $(selectVariable).attr('id') + '">*</a>'); 
    } 

はここにフィドルですあなたは欲しい:

$('*[id]').not($('#I_can_predict, #I_can_predict *')).each(function() { 
 
    var selectVariable = this; 
 
    $(selectVariable).prepend('<a href="#" class="" id="' 
 
           + $(selectVariable).attr('id') + '">*</a>'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='content'> 
 
    content 
 
    <!-- How do I stop the jquery from prepending `id='I can predict'` and all its children--> 
 
    <div id='I_can_predict'>I can predict 
 
     <div id="I_can't_predict">I can't predict1 
 
     </div> 
 

 
      <div id="I_can't_predict2">I can't predict2 
 
      </div> 
 
    </div> 
 

 
    <div id='another_piece_of_content'>another piece of content 
 
      <div id="I_can't_predict_(but_needs_an_a_link)">I_can't_predict_(but_needs_an_a_link) 
 
      </div> 
 
    </div> 
 
</div>

+0

私は($( '#id、#id *'))してみませんでしたが、 – purencool

関連する問題