javascript - 编写此 jquery 的更好选择

标签 javascript jquery html ruby-on-rails-3

我有一个如下所示的 html 文件,

<i class=‘icon-calendar icon-large' data-placement='top' data-toggle='popover' type='button'>
  <div class='head hide'>Calendar</div>
    <div class='content hide'>
      <form action="#" data-remote="true" id="calendar_form" method="post">
        <div style="...">
          <input type="hidden" />
          <input type="hidden" />
        </div> 
            <table border='0px'>
             <tbody>
               <tr>
                <td colspan='2'>
                  <button class='btn btn-default btn-block' id='submit' type='submit'>Convert</button>
                </td>
             </tbody>
            </table>
         </form>
        </div>
       </i>

<li class="..." id="calendar_example"><label class=" label" for="...">...</label>
  <input class="..." id="calendar_example_1" name="[calendar_example][0][calendar_example_1][0]" type="text" />

我正在尝试使用 Jquery 编写函数,当单击 id 提交的按钮时,我可以将值从弹出窗口传递到 id calendar_example_1 的字段,我的代码(查找该字段的工作代码)是

 $(function(){
   $('body').on('click','#submit', function(){
    var calendar_name = $(this).parent().parent().parent().parent().parent().parent().siblings().find('#calendar_example_1').attr('name');
    return false;
  });
 });

通过多次使用 .parent(),我认为这不是编写此代码的好方法。由于我是 jquery 的新手,我找不到任何更好的解决方案来按照我想要的方式工作。有人可以给我一些建议吗?

编辑: 外部形式是嵌套的。

最佳答案

你可以这样做:

var calendar_name = $(this).closest("i.icon-calendar").siblings("li#calendar_example").find('#calendar_example_1').attr('name');

关于javascript - 编写此 jquery 的更好选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27351218/

相关文章:

javascript - 将框旋转 180 度应该会改变背景颜色但失败了。漏洞?

javascript - 访问该特定 JSON 对象的 JSON 子对象

javascript - 如何使用jquery获取gridview中的隐藏列值

javascript - 扩展 jQuery 以制作像我创建的占位符

javascript - DataTable 固定标题不适用于可滚动表

javascript - 如何创建不受某些 css 样式影响的新 <li>

javascript - 为什么此代码没有按预期更改背景图像?

javascript - 当有人点击链接(图像)时,是否可以缩放?

javascript - Rails 4 - 从 ajax 更新表单中的值或数据属性并在 if 语句中使用此更新的值

html - 如何使用 Material Angular 将嵌套的json数组显示到html表中