使用Jquery获取最新DIV的ID

时间:2011-11-25 15:59:11

标签: jquery

我有一个网页,每分钟动态预设一次新的div。

以下是HTML代码的基本外观:

<div id="container"></div>

<div id="freshcontent">
 <div id="501">Stuff 2:18pm</div>
 <div id="500">Stuff 2:12pm</div>
 <div id="499">Stuff 2:09pm</div>
 <div id="498">Stuff 2:05pm</div>
</div>

我想检索“freshcontent”div中最新div的id,在上面的示例中为“501”。

然后我想获取id号并将其插入到一些Jquery代码中,我在这里:

<script type="text/javascript">
 $(document).ready(function() {
  $.ajaxSetup({ cache: false });
   setInterval(function() {
   $("#container").load("/webpage/?id="+THE_ID_NUMBER_GOES_HERE);
  }, 10000);
 });
</script>

所以我有两个问题:

  1. 如何获取最新div的ID(不断变化)?
  2. 如何将其插入我的Jquery代码?
  3. 我是Javascript / Jquery的新手,所以我不知道该怎么做。我尝试过使用.first()和.closest(),但我无法让它工作。

4 个答案:

答案 0 :(得分:1)

这样做:

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
   setInterval(function() {
   var divId = $("#freshcontent > div:first").attr('id');
   $("#container").load("/webpage/?id="+divId);
  }, 10000);
 });


答案 1 :(得分:1)

如何

<script type="text/javascript">
 $(document).ready(function() {
  $.ajaxSetup({ cache: false });
  setInterval(function() {
   var id = $('#freshcontent > div').first()[0].id;
   $("#container").load("/webpage/?id="+id);
  }, 10000);
 });
</script>

为什么

$('#freshcontent > div')选择#freshcontent中的所有直接div子项。

first()选择所选集合中的第一个。

[0]获取底层的html元素。

id是元素的javascript属性,表示它的“id”。

但...

这不包括错误处理。如果你的“freshcontent”是空的,你的js控制台会抛出一个错误,并且会对“/ webpage /?id = undefined”进行ajax调用。

<script type="text/javascript">
 $(document).ready(function() {
  $.ajaxSetup({ cache: false });
  setInterval(function() {
   var first = $('#freshcontent > div').first();
   var id = "default value";
   if(!!first.length) {
     id = first[0].id;
   }
   $("#container").load("/webpage/?id=" + id);
  }, 10000);
 });
</script>

提供了一些错误处理,使用“默认值”进行ajax调用以获取前几个元素。

答案 2 :(得分:1)

我创建了一个示例on JS Fiddle

它说明了获取最新id的两种方法,一种使用隐式排序(这是基于您的示例HTML的假设),另一种实际检查数字并返回最大值。

JS Fiddle的例子也在下面说明:

隐含顺序:

var itemId = $('#freshcontent div:first').attr('id');

独立于订单:

var itemId = 0;
$("#freshcontent div").each( function () {
    itemId = Math.max(itemId, parseInt(this.id, 10));
});

答案 3 :(得分:0)

var recentDiv = $("#freshcontent div:first");