jQuery:appendTo最接近的语法
我相信这是一个简单的问题。我在一个表中有几行,如下所示:jQuery:appendTo最接近的语法,jquery,syntax,closest,appendto,Jquery,Syntax,Closest,Appendto,我相信这是一个简单的问题。我在一个表中有几行,如下所示: <tr> <td> <select class="UsersSelect"> <option value="user-whatever">User Whatever</option> </select> </td> <td> <a class="EditBu
<tr>
<td>
<select class="UsersSelect">
<option value="user-whatever">User Whatever</option>
</select>
</td>
<td>
<a class="EditButton"><span class="ui-icon ui-icon-pencil"></span></a>
</td>
</tr>
不管用什么
以下是jQuery:
$('.EditButton').click(function() {
$('<option>test</option>').appendTo($(this).closest('select.UsersSelect'));
...
});
$('.EditButton')。单击(函数(){
$('test').appendTo($(this.closest('select.UsersSelect'));
...
});
这根本没有结果。我相信我的错误是不正确地使用了$(这个),但我不知道我是怎么搞砸的
希望我的目标足够明显。我只是想澄清一下,我只是想添加到最近的select中,它一次不会超过一个,而且总是在最上面
非常感谢您抽出时间 由于
select
不是同级或父级,因此您必须对选择器执行更多的逻辑操作:
var container = $(this).closest("td").prev("td").find("select.UsersSelect");
$('<option>test</option>').appendTo(container);
var container=$(this).closest(“td”).prev(“td”).find(“select.UsersSelect”);
$('test')。附加到(容器);
试试:
$('.EditButton')。单击(函数(){
$('test').appendTo($(this.closest('td').prev().find('select.UsersSelect'));
});
.closest()
沿DOM向上移动,在您的示例中,它将转到父td,然后父tr,表,完全缺少select。select.UsersSelect
不是.EditButton
的父项。这就是为什么什么都没有发生
改用这个:
$('.EditButton').click(function() {
$(this)
.closest("tr")
.find("select.UsersSelect")
.append('<option>test</option>');
// ...
return false;
});
$('.EditButton')。单击(函数(){
$(本)
.最近的(“tr”)
.find(“select.UsersSelect”)
.append(“test”);
// ...
返回false;
});
更改此项:
$('<option>test</option>').appendTo($(this).closest('select.UsersSelect'));
$('test').appendTo($(this.closest('select.UsersSelect'));
为此:
$('<option>test</option>').appendTo($(this).closest('tr').find('select.UsersSelect'));
$('test').appendTo($(this.closest('tr').find('select.UsersSelect'));
您需要使用
.closest()
遍历到tr
,然后可以使用.find()
方法获得目标。所有即时答案在技术上都是正确的。但由于这是第一个,我选择了它。对于未来的读者:我不知道父母或兄弟姐妹是谁。我认为这是逐行逐行的,这不是真的。@Joe--是的,最近的
向上移动,查找
向下移动,这意味着它从开口开始,然后向下/向内移动到你指定的任何位置。好人。谢谢
$('<option>test</option>').appendTo($(this).closest('tr').find('select.UsersSelect'));