2017-04-19 19 views
-4

我有一个函数返回一个未定义的变量。我在一些类似的帖子中尝试了所有回复,但没有结果。未定义的Javascript变量 - phcat

identifier_id已定义,但未定义phcat。有任何想法吗?

$(function() { 
    $('body').on('click', '.save_random_profile', function() { 
    var identifier_id = $(this).attr("id"); 
    $('.created_profile' + identifier_id).html('<img src="img/loader.gif" class="loading" />'); 
    var phcat = document.getElementById('#phcat'+identifier_id).value; 
    alert(phcat); 

    $.ajax({ 
     type: "POST", 
     async: false, 
     url: "actions/save_random_profile.php", 
     data: dataString, 
     cache: false, 
     success: function(data) { 
     if (data == 0) { 
      $('.created_profile' + identifier_id).html('Not Sent!'); 
     } else { 
      $('.created_profile' + identifier_id).html(data); 
     } 
     } 
    }); 
    return false; 
    }); 
}); 
+0

什么让一个元素的'id'点您可以通过它选择的是'id' - 您已在'identifier_id'中拥有该值。问题本身是因为jQuery对象没有'id'属性。您需要使用'.prop('id')' - 尽管如前所述,这完全是冗余代码。 –

+0

var phcat = $('。phcat#'+ identifier_id).id;到var phcat = $('。phcat#'+ identifier_id).attr('id'); – Roy

+0

更改为'var phcat = $('。phcat#'+ identifier_id).id;'并检查。但是这里的'.id'是什么?我认为它需要'.val()'或'.text()'或'attr('id')'..类似于 –

回答

1

尝试jquery.attr()

Object.id是一种本地javascript方法,不适用于jquery集合对象。

要获得ID在一个jQuery对象,使用var phcat = $('.phcat#' + identifier_id).attr("id");

或者,如果你想用JavaScript来仍然存在,使用document.querySelector('.phcat#' + identifier_id).id;

$(function() { 
    $('body').on('click', '.save_random_profile', function() { 
    var identifier_id = $(this).attr("id"); 
    $('.created_profile' + identifier_id).html('<img src="img/loader.gif" class="loading" />'); 
    var phcat = $('.phcat#' + identifier_id).attr("id"); 
    alert(phcat); 

    $.ajax({ 
     type: "POST", 
     async: false, 
     url: "actions/save_random_profile.php", 
     data: dataString, 
     cache: false, 
     success: function(data) { 
     if (data == 0) { 
      $('.created_profile' + identifier_id).html('Not Sent!'); 
     } else { 
      $('.created_profile' + identifier_id).html(data); 
     } 
     } 
    }); 
    return false; 
    }); 
}); 

编辑

如果您正在使用document.getElementById,请不要使用#以及id。

var phcat = document.getElementById('phcat'+identifier_id).value; 
+0

对不起,我在我的代码中犯了一个错误。现在它已更新! –

+0

@ComanPaul检查编辑答案的一部分。 – nashcheez

0

使用var phcat = $('.phcat#'+identifier_id).attr('id');

+1

请解释你的答案 – Mazz

+0

对不起,我在我的代码中犯了一个错误。现在它已更新! –

0

使用

变种phcat = $( 'phcat#' + identifier_id)[0] .ID;

它会给你本地JS OBJ

OR

var phcat = $('.phcat#' + identifier_id).attr('id'); 

它将返回元素的ID