Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到某个最近的嵌套<;选择>;从另一个分区内_Javascript_Jquery - Fatal编程技术网

Javascript 如何找到某个最近的嵌套<;选择>;从另一个分区内

Javascript 如何找到某个最近的嵌套<;选择>;从另一个分区内,javascript,jquery,Javascript,Jquery,我的表格结构如下: <div class='full'> <div class='half'> <label>Book</label> <select class='collection_ID'> <option></option> <option value="1">Geen leuk boek / &euro; <span>14.5

我的表格结构如下:

<div class='full'>
  <div class='half'>
    <label>Book</label>

    <select class='collection_ID'>
      <option></option>
      <option value="1">Geen leuk boek / &euro; <span>14.50</span></option>
      <option value="2">Cool boek! / &euro; <span>24.50</span></option>
    </select>
  </div>

  <div class='half'>
    <label>Find a book</label>
    <input type='text' class='invoke_search'>
  </div>
</div>

<button class='clone'>Another Book</button>
它位于.live()事件侦听器上(或者以您所称的方式),因为“克隆”按钮将创建..的副本/克隆。。因此,用户可以向表单中添加更多书籍,这也意味着我不能在上使用唯一ID,因为用户必须在单个选项中搜索,而不是在每个选择中搜索

现在来回答我的问题,以下部分是硬编码的:

var haystack = $(this).parent().parent().find('select').children();
因此,我正在寻找一种使用以下内容的方法:

$(this).closest('select');
好像我的表单结构看起来像:

<div class='full'>
  <label>Book</label>

  <select class='collection_ID'>
    <option></option>
    <option value="1">Geen leuk boek / &euro; <span>14.50</span></option>
    <option value="2">Cool boek! / &euro; <span>24.50</span></option>
  </select>

  <label>Find a book</label>
  <input type='text' class='invoke_search'>
</div>

书
吉恩-卢克-波克/欧元;14.50
酷酷的boek!/&欧元24.50
找一本书
这会使样式设置变得非常困难,那么有没有一种方法可以以某种智能的方式使用.closest()或.find()而不是“硬编码”parent().parent().find()


提前感谢

如果总是有一个包装器,那么这可能会起作用:

var $select = $(this).closest('.full').find('select');

你只需要一些既包含你的
又包含
的东西,这些东西可以使用选择器轻松识别,然后将选择器交给你以找到起点。

谢谢,我会接受这一点(但需要等待5分钟:o)我觉得很傻lol:D@Tessmore:
dumb+learning=less\u dumb
,有时“隧道视觉”被误认为是“愚蠢的”,我们都患有隧道视觉。这是一个非常详细的问题。这使得专家很容易回答。
<div class='full'>
  <label>Book</label>

  <select class='collection_ID'>
    <option></option>
    <option value="1">Geen leuk boek / &euro; <span>14.50</span></option>
    <option value="2">Cool boek! / &euro; <span>24.50</span></option>
  </select>

  <label>Find a book</label>
  <input type='text' class='invoke_search'>
</div>
var $select = $(this).closest('.full').find('select');