删除所有div(具有特定类)除了div(具有相同的类)以及具有特定id的下拉列表

时间:2015-06-03 07:28:44

标签: javascript jquery

  1. 我有一个代码说明:

    #risk_1

  2. div firstIDdrop = $(".input_field.criteria_risk").first().attr('id');包含下拉列表,使用此概念获取 id

    #risk_1

  3. 由于$(".risk_main_div:not([parent of firstIDdrop])").remove();删除已完成硬编码,我希望它能像这样实现

    <div id="risk_1" class="risk_main_div"> <div id="risk_drp_cont_1"> <select id="risk_mitigator_offer_1" class="input_field criteria_risk" multiple="" style="width: 302px; display: none;" name="risk_mitigator_offer_1[]"> </div> <div id="risk_wgt_cont_1"> <input id="risk_weight_1" class="input_field" type="text" maxlength="3" style="color:#777777; width: 40px;" value="0" name="risk_weight_1"> </div> <div id="risk_del_cont_1"> <a id="delete_mitigator" href="javascript:void(0);" onclick="deleteRisk(1)"></a> </div> <div style="clear:both"> </div> <div id="risk_2" class="risk_main_div"> <div id="risk_drp_cont_2"> <select id="risk_mitigator_offer_2" class="input_field criteria_risk" multiple="" style="width: 302px; display: none;" name="risk_mitigator_offer_2[]"> </div> <div id="risk_wgt_cont_2"> <input id="risk_weight_2" class="input_field" type="text" maxlength="3" style="color:#777777; width: 40px;" value="0" name="risk_weight_2"> </div> <div id="risk_del_cont_2"> <a id="delete_mitigator" href="javascript:void(0);" onclick="deleteRisk(2)"></a> </div> <div style="clear:both"> </div>

  4. 如何更正此代码?

    HTML

    这是一个粗略的HTML,

    fade(color, 30%)

3 个答案:

答案 0 :(得分:3)

您可以将:has()选择器与:not()选择器

一起使用
$(".risk_main_div:not(:has(#firstIDdrop))").remove();

如果firstIDdrop是变量

$(".risk_main_div:not(:has(#" + firstIDdrop +"))").remove();

$(function() {
  $(".risk_main_div:not(:has(#firstIDdrop))").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="risk_main_div">1</div>
<div class="risk_main_div">2</div>
<div class="risk_main_div">3
  <select id="firstIDdrop">
    <option>1</option>
    <option>2</option>
  </select>
</div>
<div class="risk_main_div">4</div>

答案 1 :(得分:0)

要找到某人的父母,我建议你制作一个选择器,首先匹配任何与你想要不匹配的父ID不匹配的父母,然后你要找的是什么。

这些方面应该有效:

$("not:(" + firstIDdrop + ") .risk_main_div").remove()

答案 2 :(得分:0)

如果我理解正确,您可以在首先获取id时获取父级。像这样:

var $parent = $(".input_field.criteria_risk").first();
$(".risk_main_div:not(#" + $parent.attr("id") + ")").remove();