0

如何动态获取以下代码的最后一个 ID 号?(在此代码中 = obj_9)

            <div id="objects">
            <div class="obj_item"><img id="obj_1" class="ui-widget-content" src="elements/abstract_celtic_knot_in_blue_tattoo_design.png" /></div>
            <div class="obj_item"><img id="obj_2" class="ui-widget-content" src="elements/anchor_tears_the_skin_tatoo_design.png" /></div>
            <div class="obj_item"><img id="obj_3" class="ui-widget-content" src="elements/armband_tattoo_with_cross_in_the_center_idea.png" /></div>
            <div class="obj_item"><img id="obj_4" class="ui-widget-content" src="elements/armband_tribal_sign_tattoo_design.png" /></div>
            <div class="obj_item"><img id="obj_5" class="ui-widget-content" src="elements/bat_covered_by_the_wings_tattoo_design.png" /></div>
            <div class="obj_item"><img id="obj_6" class="ui-widget-content" src="elements/black_eye_tattoo_idea.png" /></div>
            <div class="obj_item"><img id="obj_7" class="ui-widget-content" src="elements/black_sketch_of_native_indian_chief_tattoo_design.png" /></div>
            <div class="obj_item"><img id="obj_8" class="ui-widget-content" src="elements/clown_with_two_knives_tattoo_idea.png" /></div>
            <div class="obj_item"><img id="obj_9" class="ui-widget-content" src="elements/eagle_is_catching_prey_tattoo_design.png" /></div>
            </div>

最后将 id 转换为 int 数字并将其加一。

谢谢你

4

7 回答 7

1

假设它们按数字顺序排列,这将获得最后一个图像元素 ID 的数值 + 1 ...

parseInt($("#objects .obj_item:last img").attr("ID").split("_")[1], 10) + 1;

如果元素可能出现故障,那么这将不起作用,您需要全部解析它们并找到最高值。

于 2012-10-08T12:23:58.810 回答
0

如果你总是开始分配idfrom1并且中间没有丢失 id ,试试

var newID = "obj_" + ( $('#objects > div').length + 1)
于 2012-10-08T12:22:13.660 回答
0

这个应该做...

sudo 选择器 :last 是关键。

var id = parseInt($('#objects .ob_item:last').find('.ui-widget-content').attr('id'));
id = id + 1;

//Or id++
于 2012-10-08T12:23:05.537 回答
0

这是代码:

$(document).ready(function(){
    var last_id = $('#objects div.obj_item > img').last().attr('id');
});

你也可以这样做:

$(document).ready(function(){
    var last_id = $('#objects div.obj_item > img:last').attr('id');
});
于 2012-10-08T12:23:25.580 回答
0

我的头顶上有一点伪代码......

   var id = "";
$(".obj_item").each(function(index){
var amount = $(".obj_item").length;
if(index == amount-1){

id = $(this).find("img").attr("id");
    alert(parseInt(id.replace("obj_","")));
}
});​
于 2012-10-08T12:23:36.507 回答
0

你首先需要找到最后一个元素。有很多方法可以切蛋糕。我更喜欢

var id = $("#objects .obj_item:last img").attr("ID"); 

你需要提取号码

var num = parseInt(id.substring(3),10);

add 你可以加 1 到 num

parseInt 的最后一个参数是告诉运行时将字符串解析为十进制数的基数。如果不提供此参数,您可能会得到一些意想不到的结果。是否会出现这些情况取决于您如何生成 ID,但始终提供基数是一个好习惯。

于 2012-10-08T12:27:41.617 回答
0

使用正则表达式:

$("#objects >div:last img")[0].id.replace(/[a-z]+_/gi,"")
于 2012-10-08T12:28:03.270 回答