Reputation: 323
I want to get the parent of a selected option which is a td and then use insertAfter to insert another td after it but the reference is coming back null? Can someone tell me why?
Thanks
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>
Upvotes: 0
Views: 2472
Reputation: 4924
Instead of using a chain of parent()
calls, try the closest()
function.
$option.closest('div.parentClass').find('.criteria-value')....
Pass it a valid selector for whatever parent you're looking for. This way you don't rely on structure so much.
Upvotes: 2