Auswahl von Elementen mit Sonderzeichen in der ID

Lesezeit: 2 Minuten

Benutzer-Avatar
groß

In HTML-Code verwende ich Code
<input type = "text" id = "[email protected]"> Um jetzt Text zu erhalten, muss der Wert abgerufen werden, der in das Textfeld eingegeben wird. Ich benutze jquery, um das zu tun:

$( document ).ready( function() {
    $( ".bid" ).click( function() {
        idVal = this.id
        bidID = "#" + idVal + "bid"
        spanID = "#" + idVal + "cbid"
        bidValue = $(bidID).val();

        alert(idVal)
        alert(bidID)
        alert(bidValue) //this alert says undefined
        $( spanID ).html( '&nbsp;' ).load( '{% url online_machines %}?id=' + idVal + '&bidvalue=" + bidValue);
    });
});

Dadurch erhalte ich den Wert error undefined. Ich habe versucht, Sonderzeichen aus der ID zu entfernen, um ihren Wert zu erhalten. Aber ich brauche die ID mit Sonderzeichen. Wie kann ich seinen Wert mit jquery abrufen?

Anstatt die ID mit # zu versuchen, versuchen Sie dies, um ein Attribut wie dieses abzugleichen,

$("[id=ID]')

oder

$('[id='+ID+']')

also statt

bidID = "#" + idVal + "bid"

Du kannst es versuchen

bidID = "[id=" + idVal + "bid]"

  • In manchen Fällen müssen Sie es vielleicht so machen: $(“[id=’ID’]”)

    – Die Berga

    27. Januar 2017 um 10:02 Uhr

  • Das funktioniert möglicherweise nicht: $(‘[id=’+ID+’]’) sollten Sie setzen $('[id="'+ID+'"]') Der Wert der ID sollte in Anführungszeichen stehen

    – Panos Kal.

    4. September 2017 um 7:22 Uhr


Benutzer-Avatar
ysrb

Versuchen Sie, ihm zu entkommen:

$('#abc\\@def.com').val();

Erster Absatz von http://api.jquery.com/category/selectors/

  • Ich glaube, das wäre $(‘#abc\\@def\\.com’)

    – mplungjan

    10. September 2013 um 12:54 Uhr


Es sieht so aus, als hätte JQuery ab Version 3 eine nützliche Methode aufgerufen escapeSelector.

$('#' + $.escapeSelector(my_id_with_special_chars));

https://api.jquery.com/jQuery.escapeSelector/

$(document.getElementById('[email protected]')) funktioniert auch.

Probieren Sie es aus, nicht zu 100%, ob es das ist, wonach Sie suchen. Gib mir Bescheid:

$( document ).ready(function() {
    $(".bid").click(function() {
        idVal = $(this).attr('id');
        bidID = "#" + idVal + "bid";
        spanID = "#" + idVal + "cbid";
        bidValue = bidID.val();

        alert(idVal);
        alert(bidID);
        alert(bidValue);
        spanID.html('&nbsp;').load('{% url online_machines %}?id=' + idVal + '&bidvalue=" + bidValue);
    });
});

Benutzer-Avatar
Josef Jojo John

Verwenden Sie die Funktion CSS.escape(), um dieses DOM-Element auszuwählen. In Ihrem Fall für die ID [email protected] können Sie den folgenden Code verwenden.

$("#" + CSS.escape("[email protected]'));

Benutzer-Avatar
Gleno

Diese Lösung unten hat bei mir funktioniert, sie ist ziemlich sauber:

//your HTML id has special characters: 
var option= "Some option with (parenthesis or @ )";
//use this type of jquery query:
$(`[id="order_${option}"]`).prop('checked',true)

1016550cookie-checkAuswahl von Elementen mit Sonderzeichen in der ID

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy