我有一个网页,每分钟动态预设一次新的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>
所以我有两个问题:
我是Javascript / Jquery的新手,所以我不知道该怎么做。我尝试过使用.first()和.closest(),但我无法让它工作。
答案 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");