javascript - 获取包含div的ID以传入jeditable jquery

标签 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 才能使用函数。

我明白了。我需要集中该函数,而不是仅仅尝试设置 reci,这样才能正常工作。

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

但是,由于我有三个类触发此操作(click、edit_area、editable_select),是否可以将“.click”替换为其他内容,以便它适用于使用它的任何可编辑项?或者我需要复制上面的内容吗?

最佳答案

为什么不尝试使用 parent(),而不是这里的 closest():

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

看看会发生什么。

关于javascript - 获取包含div的ID以传入jeditable jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11899659/

相关文章:

css - Target samelevel and parent 列表

如果子 div 为空,jQuery 隐藏父 div

javascript - 重新加载es6类

javascript - 将输入值发送到 javascript 函数

javascript - 如何创建一个函数来检测我的可滚动 tbody 何时溢出?

javascript - 区分元刷新和页面卸载事件上的其他刷新

javascript - 对 Flask 中创建的表中的列进行排序

javascript - 使用 Node.js 的 fs.watchfile 的相对路径

javascript - 字符串到数字的混淆

java - 在扩展类中初始化