2017-04-19 7 views
-4

Ich habe eine Funktion, die eine undefinierte Variable zurückgibt. Ich habe alle Antworten in einigen ähnlichen Posts versucht, aber keine Ergebnisse.Undefinierte Javascript-Variable - Phcat

identifier_id ist definiert, aber phcat ist nicht definiert. Irgendwelche Ideen?

+0

Was ist der Sinn des Erhaltens der 'id' eines Elements Sie es ausgewählt ist 'id' - Sie haben diesen Wert bereits in' identifier_id'. Das Problem selbst besteht darin, dass jQuery-Objekte keine 'id'-Eigenschaft haben. Sie müssen stattdessen '.prop ('id')' verwenden - obwohl, wie ich bereits erwähnt habe, dies völlig redundanter Code ist. –

+0

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

+0

ändern Sie zu 'var phcat = $ ('.phcat #' + identifier_id) .id;' und prüfen Sie. aber was ist '.id' hier? ich denke, dass es '.val()' oder '.text()' oder 'attr ('id')' sein muss. so etwas –

Antwort

1

Versuchen Sie jquery.attr().

Object.id ist eine native JavaScript-Methode und wird nicht auf Objekte einer jquery-Sammlung anwendbar sein.

Um die ID in einem jQuery-Objekt zu erhalten, verwenden var phcat = $('.phcat#' + identifier_id).attr("id");

Oder wenn Sie mit Javascript bestehen bleiben möchten, verwenden Sie 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; 
    }); 
}); 

EDIT

Wenn Sie document.getElementById verwenden, Verwenden Sie nicht die zusammen mit der ID.

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

Sorry, ich habe einen Fehler in meinem Code. Jetzt ist es aktualisiert! –

+0

@ComanPaul Check Teil der Antwort bearbeiten. – nashcheez

0

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

+1

bitte erklären Sie Ihre Antwort – Mazz

+0

Sorry, ich habe einen Fehler in meinem Code gemacht. Jetzt ist es aktualisiert! –

0

Verwendung

var phcat = $ ('phcat #' + identifier_id) [0] .id;

es wird Ihnen nativer JS obj

ODER

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

es wird id Element zurückkehren