2017-04-19 49 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