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'));