通过JQuery获取动态内容的ID

我正在使用PHP创建一些动态内容标签,标签上的一个对象是数据表。 我通过PHP定义ID,如下所示:</ p>

PHP:</ p>

  echo'&lt; table class =“table table-striped table- 有边界的表 - 悬停“id =”'。$ nospaces。'“&gt;'; 
</ code> </ pre>

该表完全加载数据但是我在初始化时遇到问题 用于排序和过滤的数据表。 通常在静态表上我只是使用静态ID初始化它,但在这种情况下我不能这样做。</ p>

我以为我可以做一些jquery来听一个tab click事件和 然后获取表ID并将其加载到jquery数据表初始化中,但这也不起作用。 我只是得到一个未定义的警报:</ p>

JQuery:</ p>

 &lt; script&gt; 
$('a a [data-toggle] =“tab”]')。on('shown.bs.tab',function(e){
var row = $(this).closest('table')。attr('id');
alert (行);

$(文件).ready(function(){
oTable = $('row')。dataTable({
“sDom”:'&lt;“top”lf&gt; rt&lt;“ bottom“ip&gt;&lt;”clear“&gt;'

});

});
});
&lt; / script&gt;
</ code> </ pre>
\ n

任何帮助将不胜感激! 谢谢。</ p>
</ div>

展开原文

原文

I'm creating some dynamic content tabs using PHP, one object on the tab is a datatable. I define the ID via PHP like this:

PHP:

echo '<table class="table table-striped table-bordered table-hover" id="'.$nospaces.'">';

The table loads the data perfectly however I'm having problems initializing the datatable for sorting and filtering. Normally on static tables I would just initialize it using the static ID but I can't do that in this case.

I thought I could do some jquery to listen to a tab click event and then grab the table ID and load it into the jquery datatables initialization but that isn't working either. I'm just getting an undefined alert:

JQuery:

<script>
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    var row = $(this).closest('table').attr('id');
    alert(row);

    $(document).ready(function() {
    oTable = $('row').dataTable( {
       "sDom": '<"top"lf>rt<"bottom"ip><"clear">'

    });

    });
    });
</script>

Any help would be greatly appreciated! Thanks.

3个回答



我最后做了一些额外的步骤。 不是最干净但它的工作。 </ p>

首先在动态选项卡/表格中我为新ID创建了一个变量,因为我的选项卡和表格ID相同:</ p>

PHP :</ p>

  $ tableid = $ nospaces .'table'; 
echo'&lt; table class =“table table-striped table-bordered table-hover”id =“'。 $ tableid。'“&gt;';
</ code> </ pre>

然后我在标签上初始化(并销毁)数据表点击如下:</ p>

< p> JQuery:</ p>

  $('a [data-toggle =“tab”]')。on('shown.bs.tab',function(e){\  ntab = e.target.hash //新激活的tab 
tabtable = tab +'table'

$(document).ready(function(){
oTable = $(tabtable).dataTable({
“ sDom“:'&lt;”top“lf&gt; rt&lt;”bottom“ip&gt;&lt;”clear“&gt;'
});
});
$('a [data-toggle =”tab“ ]')。on('shown.bs.tab',function(e){
oldtab = e.relatedTarget.hash
oldtable = oldtab +'table'
$(oldtable).dataTable()。fnDestroy( );
});
});
</ code> </ pre>
</ div>

展开原文

原文

I ended up doing a mixture with some extra steps. Not the cleanest but it's working.

First on the dynamic tab/table I created a variable for a new ID because I had the tab and the table ID the same:

PHP:

$tableid = $nospaces .'table';
echo '<table class="table table-striped table-bordered table-hover" id="'.$tableid.'">';

I then initialize (and destroy) the datatable on tab click like this:

JQuery:

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
tab = e.target.hash // newly activated tab
tabtable = tab + 'table'

$(document).ready(function() {
    oTable = $(tabtable).dataTable( {
        "sDom": '<"top"lf>rt<"bottom"ip><"clear">'
    });
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    oldtab = e.relatedTarget.hash
    oldtable = oldtab + 'table'
    $(oldtable).dataTable().fnDestroy();
    });
});



我想使用变量 row </ code>可以解决问题,而不是使用字符串'行 '</ code>:)</ p>

  var row = $(this).closest('table')。attr('id  '); 
alert(row);

$(document).ready(function(){
oTable = $(row).dataTable({//&lt; --- here
“sDom”:' &lt;“top”lf&gt; rt&lt;“bottom”ip&gt;&lt;“clear”&gt;'
});
</ code> </ pre>
</ div>

展开原文

原文

I guess using the variable row would do the trick, instead of using the string 'row' :)

var row = $(this).closest('table').attr('id');
alert(row);

$(document).ready(function() {
oTable = $(row).dataTable( { //<--- here
  "sDom": '<"top"lf>rt<"bottom"ip><"clear">'
});



你有什么理由不能使用静态ID吗?</ p>

   var staticID ='&lt;?php echo $ nospaces;  ?&gt;'; 

$('#'+ staticID).dataTable();
</ code> </ pre>
</ div>

展开原文

原文

Is there any reason you can't still use the static ID?

var staticID = '<?php echo $nospaces; ?>';

$('#' + staticID).dataTable();

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐