我想获取一个选定选项的父项,这是一个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=">">is greater than</option>
<option value="<">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>
答案 0 :(得分:1)
请尝试使用parent()
函数。
closest()
个调用链
$option.closest('div.parentClass').find('.criteria-value')....
为您正在寻找的任何父母传递一个有效的选择器。这样你就不必依赖结构了。