获取包含div的ID以传递jeditable jquery

时间:2012-08-10 10:20:01

标签: javascript jquery parent jeditable

我使用jeditable来更新页面上的多个项目,但是有一些不同的记录可以在一个页面上修改,所以我需要传递每个记录的唯一ID以及更新。每条记录都包含在自己的div中,其id为记录ID。

我设法让Jquery工作,但它获得了第一个Div的ID,而不是包含div。

这是简化的html

<div id="outer">
 <div id="left"> 
  <div id="3">
    <p><strong>Web ID: </strong>3</p>
    <p><strong>Record Date type (008): </strong><span class="editable_select" id="0085" style="display: inline">eng</span></p>
    <p><strong>Collection ID (035): </strong>(WlAbNL)1002</p>
    <p><strong>Date Created (260): </strong><span class="click" style="display: inline" id="260">1910 -</span></p>
  </div>
 </div>
</div>

这是Jquery有效,但选择'Outer'代替'3'。我认为问题出在我的var rec定义中?

<script id="source" language="javascript" type="text/javascript">
 $(document).ready(function() {
   var recid = $('.click').closest('div').attr('id');

     $('.click').editable('ajax/save.php', {     
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : 'Saving...',
         style  : "inherit",
         tooltip   : 'Click to change...',
         submitdata : function() {
              return {rid : recid }; 
            }
     });
     $('.edit_area').editable('ajax/save.php', { 
         submitdata : {record: "<?php echo $rec_id; ?>"},
         type      : 'textarea',
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : '<img src="img/indicator.gif">',
         tooltip   : 'Click to change...'
     });
     $(".editable_select").editable('ajax_save.php', { 
            submitdata : {record: "<?php echo $rec_id; ?>"},
            indicator : '<img src="img/indicator.gif">',
            data   : "{'Eng':'Eng','Cym':'Cym'}",
            type   : "select",
            submit : "OK",
            style  : "inherit",
    });
 });

更新 -

以下获取正确的ID,我必须更改VAR以使用函数。

我明白了。而不仅仅是尝试设置recid我需要关注函数以便这样做。

var recid;
   $('.click').focus(function() {
      recid = $(this).closest('div').attr('id');
   });

然而,由于我有三个触发此类的类(click,edit_area,editable_select),因此可以将'.click'替换为其他内容,以便它可以在使用它的任何可编辑中运行吗?或者我是否需要复制以上内容?

1 个答案:

答案 0 :(得分:0)

为什么不尝试使用parent(),而不是closest()

var recid = $('.click').parent('div').attr('id');

看看会发生什么。