Ich habe diesen HTML CodeIf-Anweisung nicht innerhalb Ajax Erfolg arbeiten
<div class="vote">
<div data-post-id="@item.PostId" data-vote-rank="1" class="vote-arrow vote-up glyphicon glyphicon-chevron-up"></div>
<div class="total-vote">0</div>
<div data-post-id="@item.PostId" data-vote-rank="-1" class="vote-arrow vote-down glyphicon glyphicon-chevron-down"></div>
</div>
Und diese jQuery Ajax-Post
$(".vote-arrow").click(function() {
var postId = $(this).data("post-id");
var voteRank = $(this).data("vote-rank");
$.ajax({
type: "GET",
url: "/Posts/Vote/",
data: { postId: postId, voteRank: voteRank },
context: this,
success: function() {
console.log(voteRank); //working, I get 1
if (voteRank === "1") {
console.log(voteRank); //nothing in the console
$(this).css({ 'color': 'red' });
}
alert("working");
}
});
});
If-Anweisung in der success
nicht funktioniert.
Wenn ich div mit data-vote-rank="1"
drücke, bekomme ich 1 in der Konsole von der console.log
außerhalb der if-Anweisung und der alert
nach der if-Anweisung. voteRank in der If-Statement-Bedingung ist eins, wenn ich debugge, aber ich bekomme nicht die console.log innerhalb der If-Anweisung (und natürlich nicht Farbänderung).
Was ist los?
überprüfen int Entweder verwenden '==' oder 'voteRank === 1 ', die Identität (' '===) Betreiber auch prüfen Geben Sie an, dass sie übereinstimmen müssen, um als gleich zu gelten – Satpal
Ich denke, dass es wahrscheinlicher ist, dass die Bedingung richtig ausgewertet wird und einfach nicht Ihre Erwartung entspricht, anstatt dass die Bedingung falsch ausgewertet wird. – Jon
Wenn Sie debuggen, was ist der Wert von "voteRank"? Ist es "1" oder ist es "1"? Es hängt davon ab, wie Sie die Datenrequisite * setzen *, weil es den Datentyp behält, dh es ist wahrscheinlich "1" (die Zahl), die ** nicht ** === "1" Text, aber ** tut ** == "1". zB was @Satpal gesagt hat. –