JS Variable einfügen
Bernd
- javascript
- jquery
0 Gunnar Bittersmann
Hallo,
ist es möglich die ID dynamisch einzufügen?
$("#test").load(window.location + " #test");
"test" sollte durch
var test = $(this).data('item-id');
ersetzt werden.
Meine Idee war
$("#test").load(window.location + " #test");
dann wird die ID test gesucht, was natürlich falsch ist.
@@Bernd
$("#test").load(window.location + " #test");
ist das Leerzeichen falsch; #test
muss ohne Leerzeichen am Vorigen hängen.
ist das Anhängen falsch. Wenn der URI schon ein Query enthält (bspw. https://example.net#foo
), dann darf kein zweiter angehängt werden: https://example.net#foo#test
wäre falsch; es müsste https://example.net#test
sein.
Du brauchst den Query nicht window.location
zu hängen. Es sollte reichen, einfach nur den Query #test
anzugeben; der realtive Pfad bezieht sich ja auf die aktuelle Ressource.
Wenn du keinen festen String meinst, sondern eine Variable, dann sollte die nicht in "
(bzw. '
) stehen, sondern sowas in der Art:
$("#test").load("#" + $(this).data('item-id'));
.
LLAP 🖖
Hallo Gunnar,
vielen Dank für deine Antwort. Meine zwei Funktionen sehen wie folgt aus
$( "#servus" ).click(function() {
var test = $(this).data('item-id');
$("#tag").val(test);
});
$( "#tagInsert" ).submit(function( event ) {
event.preventDefault();
var send = $("#tagInsert").serialize();
$.ajax({
type: "POST",
url: "insertTags.php",
data: send,
dataType: 'json',
success: function(data) {
$("#"+test).load(window.location + "#"+test);
$.fancybox.close();
}
});
});
In den Entwicklertools erhalte ich folgende Meldung
"Uncaught ReferenceError: test is not defined"
Wenn ich es richtig verstehe kann ein Wert von einer anderen Funktion nicht in eine weitere Funktion mit übernommen werden? Oder kann ich ein Wert aus "var send" in den Success Teil übernehmen? Es geht um die ID #tag
Hab es so versucht
$( "#tagInsert" ).submit(function( event ) {
event.preventDefault();
var send = $("#tagInsert").serialize();
var mT = $("#tag").val();
$.ajax({
type: "POST",
url: "insertTags.php",
data: send,
dataType: 'json',
success: function(data) {
$("#b_"+mT).load(window.location + "#b_"+mT);
$.fancybox.close();
}
});
});
Jetzt wird zwar aktualisiert, aber die ganze Seite wird in die Seite geladen, was nicht richtig ist.
Hi,
- ist das Anhängen falsch. Wenn der URI schon ein Query enthält (bspw.
https://example.net#foo
), dann darf kein zweiter angehängt werden:https://example.net#foo#test
wäre falsch; es müsstehttps://example.net#test
sein.
Deine Beispiele passen nicht zum Text - im Text geht es um die Query, in den Beispielen um den Fragment Identifier.
Du brauchst den Query nicht `window.location` zu hängen. Es sollte reichen, einfach nur den Query `#test` anzugeben; der realtive Pfad bezieht sich ja auf die aktuelle Ressource.
s.o.
cu,
Andreas a/k/a MudGuard
@@MudGuard
Deine Beispiele passen nicht zum Text - im Text geht es um die Query, in den Beispielen um den Fragment Identifier.
Grmpf, letzteres war gemeint und hätte auch im Text stehen sollen haben gemusst.
LLAP 🖖