找到最接近的对象类 - Jquery

时间:2012-05-25 10:53:09

标签: jquery html select closest

Jquery的

  var courseSelect =  $(".courseSelected");
    $(".courseSelected").click(function()
    {
        if($(this).attr('checked'))
        {
            var selects = $(this).parent().next(".select").attr('title');
            alert(selects);
        }
    });

HTML

         <div>
            <div style="float:left;">
                <input name="course[]" type="checkbox" value="AUTOCAD" class="courseSelected" />
            </div>

            <div style="width:100px; float:left;">AUTOCAD</div>
            <select name="fromto[]" class="select small" disabled="disabled" title="Batch">
                <option value="">--Select--</option>
                <option value="May 2012,June 2012">Autocad 1(11:30 AM)</option>
                <option>Batch Name</option>
            </select>
        </div>

通过选中我需要找到select元素的复选框,我已尝试使用nearest和parent()。next(),但它似乎不适用于这种情况。

3 个答案:

答案 0 :(得分:1)

...
if($(this).attr('checked'))  {
    var selects = $(this).parent().parent().find(".select").attr('title');
    alert(selects);
}
...

$(this)          /* checkbox */
.parent()        /* div parent */
.parent()        /* div granfather */
.find(".select") /* look for .select */
.attr('title');  /* get title */

无论如何,为了简单起见,如果你控制了标记,我会像你这样改变你的标记

<input name="course[]" type="checkbox" ... data-related-select="yourselect" />
...
<select id="yourselect">
...

所以js代码只是

var selects = document.getElementById($(this).data('related-select'));

答案 1 :(得分:1)

 $(".courseSelected").click(function(){
        if(this.checked){
            var selects = $(this)
                                 .parent() // go to checkbox parent
                                 .next() // jump to div have AUTOCAD
                                 .next(".select") // to select box
                                 .attr('title'); // retrieve the title
            alert(selects);
        }
 });

答案 2 :(得分:0)

找到最接近的第一类对象 - Jquery

$(this).parent().parent().find('.show-all-result').first().show();