jQuery:跟随目标第3个元素(不是孩子)

时间:2017-10-25 11:30:41

标签: javascript jquery

我有一个div <div class="other_value">,其中有display:none(html片段中的other_value类),我想在选择&#34;其他&#34;时显示它在我的html选择。

如果隐藏的div就在select:

的旁边,我可以这样做
$('.select-additional-infos').on('change', function () {

    if ($(this).val() === "autre") {
        $(this).next().show();
    } else {
        $(this).next().hide();
    }
}); 

但是,我在<input type="hidden">和此隐藏的div <select>之间添加<div class="other_value">,我无法定位此div(<div class="other_value">)。

以下是我的尝试:

$(this).next().find('.other_value').show();

$(this).closest('div').find('.other_value').show();  

这是HTML

<select class="form-control select-additional-infos" id="infos_21" name="60_infos_21">
    <option value="non renseigné" selected="selected">non renseigné</option>
    <option value="général">1</option>
    <option value="agricole">2</option>
    <option value="non salarié">3</option>
    <option value="autre">other</option>
</select>

<input type="hidden" value="label : " name="xxx">

<div class="other_value">
    <!— some html —>
</div>

&#13;
&#13;
$(this).next().find('.other_value').show();
&#13;
.other_value {
    display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control select-additional-infos" id="infos_21" name="60_infos_21">
    <option value="non renseigné" selected="selected">non renseigné</option>
    <option value="général">1</option>
    <option value="agricole">2</option>
    <option value="non salarié">3</option>
    <option value="autre">other</option>
</select>

<input type="hidden" value="label : " name="xxx">

<div class="other_value">
    <!— some html —>
</div>

<select class="form-control select-additional-infos" id="infos_22" name="60_infos_22">
    <option value="non renseigné" selected="selected">non renseigné</option>
    <option value="général">1</option>
    <option value="agricole">2</option>
    <option value="non salarié">3</option>
    <option value="autre">other</option>
</select>

<input type="hidden" value="label : " name="xxx">

<div class="other_value">
    <!— some html —>
</div>
&#13;
&#13;
&#13;

编辑:

我忘了说我在同一页面中有多个select(我从存储在数据库中的数据动态构建表单)所以我不知道选择名称。我需要使用$this我想的东西。

2 个答案:

答案 0 :(得分:2)

您可以使用nextAll(),然后选择.other_value类。这是包含多个选择DEMO

的演示

$('select').change(function() {
  $(this).nextAll('.other_value:first').toggle($(this).val() == 'autre')
})
.other_value {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control select-additional-infos" id="infos_21" name="60_infos_21">
    <option value="non renseigné" selected="selected">non renseigné</option>
    <option value="général">1</option>
    <option value="agricole">2</option>
    <option value="non salarié">3</option>
    <option value="autre">other</option>
</select>

<input type="hidden" value="label : " name="xxx">
<div class="other_value" >
   Other 1
</div>
<div class="other_value" >
   Other 2
</div>

答案 1 :(得分:0)

File folder = new File("/Test1/Test2/Test3/XYZ03/"); String target_file; File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].isFile()) { target_file = listOfFiles[i].getName(); if (target_file.startsWith("XYZ03") && target_file.endsWith(".dat")) { System.out.println("found" + " " + target_file); } } } .show()对元素CSS .hide()属性进行操作,而不是display属性。因此:

&#13;
&#13;
type=""
&#13;
$('.select-additional-infos').on('change', function () {

  $("[name='xxx']").prop("type", this.value==="autre" ? "text" : "hidden");

}); 
&#13;
&#13;
&#13;

如果你真的想要操作<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select class="form-control select-additional-infos" id="infos_21" name="60_infos_21"> <option value="non renseigné" selected="selected">non renseigné</option> <option value="général">1</option> <option value="agricole">2</option> <option value="non salarié">3</option> <option value="autre">other</option> </select> <input type="hidden" value="label : " name="xxx"> <div class="other_value"> <!— some html —> </div>状态而不是:

  • 创建一个css display并将其分配给您的输入元素
  • 使用JS切换.hidden类,具体取决于hidden

&#13;
&#13;
select
&#13;
$('.select-additional-infos').on('change', function () {

  $("[name='xxx']").toggleClass("hidden", this.value!=="autre");

});
&#13;
.hidden {
  display: none;
}
&#13;
&#13;
&#13;