我需要从jQuery中的最后一个元素中提取第二个ID

时间:2014-03-10 16:20:28

标签: javascript jquery html

我需要拉,分解成一个整数,并在jQuery中存储第二个元素中的第二个元素,其中包含“.admin-product”类。

id就像“admin-42”,我需要存储为数字42。

存储的变量通过我的AJAX处理程序发送,并将被操作并从那里开始使用。

这是我目前的代码:

$(document).on('click', '.create-btn', function() {

var data = {'id':$('.admin-product:last').attr('id'),
           'username':$('#ausername').val(), 
           'email':$('#aemail').val(), 
           'password':$('#apassword').val()};

ShowCreateLoadingScreen("Creating...");
AjaxHandler('library/ajax/ajax.admin-account-create.php', data, 'POST', true);

});

有什么想法吗?

编辑:

优选地,以这种格式,ish:

$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);

编辑:

以下代码将数字存储为2。

{ 'ID':$( '管理员产物:第n个孩子(-n + 2) ')。ATTR(' 编号')分裂( “ - ”)[1]

编辑:

我的标记是通过解析器生成的,它在这里的代码基本上重写了同一行,因为我的数据库中仍有信息。

if($stmt->num_rows > 0) {
    $stmt->bind_result($aId, $aUsername, $aPassword, $aEmail);
    while($stmt->fetch()) {
        $html .= file_get_contents(ROOT_LIB . 'html/admin-accounts/row-user.html');
        $rowNumber = $aId;

        $replace = array(
        'userHere'      => $aUsername,
        'emailHere'     => $aEmail,
        'passHere'  => ' ',
        'IdHere'    => $aId,
        'buttonDisplay' => 
        '<button type="button" data-id="'.$aId.'" name="edit" class="btn btn-info edit-product span6" title="Edit Account" value="Edit">Edit</button>
         <button type="button" data-id="'.$aId.'" name="delete" class="btn delete-btn btn-danger span6" title="Delete Account" value="Delete">Delete</button>'
    );

    $parser = new Parser($replace);
    $parser->ParseHtml($html);
}

3 个答案:

答案 0 :(得分:1)

这是一种非常基本的古老方式:

var elements = $('.admin-product');
var len= elements.length;
var element = elements[len-2];
var data= $(element).attr('id');
var id= data.split('-')[1];

你可以简单地做

var id = $('.admin-product:nth-last-child(2)').attr('id').split('-')[1];

更新:fiddle

答案 1 :(得分:1)

听起来你感兴趣的是一些DOM元素的ID号;在这种情况下,“ID号”是元素的HTML ID的后缀。所以我要做的是构建一个所述ID号列表:

var idNums = $('.admin-product').toArray()
    .map(function(domElt){
        return Number(domElt.id.split('-')[1]);
    });

请注意,如果有任何类admin-product的元素没有格式正确的ID,则会生成值为NaN的元素;如果你愿意,你可以使用Array.prototype.filter去除那些。

然后很容易获得倒数第二个(从倒数第二个)ID(如果只有一个元素,则有安全性):

var penultimateIdNum = idNums.length>1 ? idNums[idNums.length-2] : null;

示范:http://jsfiddle.net/3SvxB/

答案 2 :(得分:0)

尝试一下:

 var ele = $(".admin-product").length;
 var id = $(".admin-product:eq(" + (ele - 3) + ")").attr('id').split('-')[1];
 Let me know if it doesn't work.