Javascript 编写此jquery的更好选项

Javascript 编写此jquery的更好选项,javascript,jquery,html,ruby-on-rails-3,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"

我有一个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" />
通过多次使用.parent(),我认为这不是编写此代码的好方法。由于我是jquery新手,我还找不到任何更好的解决方案可以按照我想要的方式工作。谁能给我一些建议

编辑:
外部窗体是嵌套的。

您只需执行以下操作即可:

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

您可以这样做:

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

$('#submit').click(function(){
var calendar_name = $('#calendar_example_1').attr('name');
});
你可以用

$('#submit').click(function(){
var calendar_name = $('#calendar_example_1').attr('name');
});

奇怪的是,我们尝试过使用与您类似的方法,但根本不起作用。仅使用$('#submit')。单击(函数(){),弹出框无法显示。奇怪的是,我们尝试使用与您类似的方式,但根本不起作用。仅使用$('#submit')。单击(函数(){),弹出框无法显示。