jQuery访问父级但对象为空?

时间:2013-02-08 20:27:03

标签: jquery

我想获取一个选定选项的父项,这是一个td,然后使用insertAfter在它之后插入另一个td,但引用返回null?有人可以告诉我为什么吗?

由于

JQ('.defieldselect').live('change',function(){
    var $option = JQ(this).find('option:selected');
    if($option.attr('rel')=='Date'){            
        var ddlID = $option.parent().parent().parent().find('.criteria-value').find('input').attr("id");
        var index = ddlID.split("_")[1];
        var select = CreateDateSelectList(index);
        $(select).insertAfter($option.parent);
    }        
});

HTML

    <tr>

        <td id="g1_c0_criteria_field" class="criteria-field">
            <select class="defieldselect" name="g1_c0_criteria_field">

<option rel="Text">Product ID 1</option>
<option rel="Date">Date Added</option>

            </select>
        </td>
        <td class="criteria-operator">
            <select id="g1_c0_criteria_operator" name="g1_c0_criteria_operator">
                <option value="=">is equal to</option>
                <option value="!=">is not equal to</option>
                <option value="&gt;">is greater than</option>
                <option value="&lt;">is less than</option>
                <option value="LIKE">contains</option>
                <option value="NOT LIKE">does not contain</option>
                <option value="LIKE">begins with</option>
            </select>
        </td>


    </tr>

1 个答案:

答案 0 :(得分:1)

请尝试使用parent()函数。

,而不是使用closest()个调用链
$option.closest('div.parentClass').find('.criteria-value')....

为您正在寻找的任何父母传递一个有效的选择器。这样你就不必依赖结构了。