Frage

Ich habe eine wörtliche Kontrolle auf der Seite (mit einigen Daten darauf) bekam. ich will es in Javascript zugreifen und einen Text auf sie setzen wollen. Bitte sagen Sie mir, wie kann ich wörtliche Kontrolle in Javascript zugreifen. (Ich verwende asp.net)

Mein Code in Javascript (aber nicht funktioniert):

 lths = document.getElementById("<%= lblhs.ClientID %>");
 lths.innerHTML = 'this is text line"
War es hilfreich?

Lösung

Sie können es document.getElementById('<%= myControl.ClientID %>') mit finden oder wenn Sie .NET 4.0 verwenden, können Sie direkt auf das ID-Feld gesetzt durch Javascript gezogen werden. Alternativ können Sie verwenden jQuerys Selektoren . Ihr Code funktioniert nicht, weil das Literal-Steuerelement nicht als Element macht, nur statischen Text. Sie können um eine Spanne platzieren, oder ein Label-Steuerelement verwenden, die für Sie als Spanne macht.

Andere Tipps

Ich glaube nicht, dass Sie eine wörtliche Kontrolle von Ihrem Javascript-Client-Code zugreifen, da eine wörtliche Steuerung macht nur reiner Wert es ist ohne umgebende Tags. So dass Sie nicht wirklich ein Element haben, das Sie von id bekommen konnte.

Was man könnte, ist die wörtliche Steuerung zu einem Label-Steuerelement zu ändern. Dies macht standardmäßig als HTML-span-Tag aus. Wie, dass Sie es auf der Client-Seite auswählen.

Eine andere Möglichkeit wäre eine Spanne oder div-Tag in Ihrer wörtlichen Kontrolle auf der Serverseite wie folgt zu schreiben:

myLiteral.Text = "<div id=\"myDiv\">Some Text here</div>"

auf dem Client Sie könnten die elemnt auswählen, indem Sie mit:

var myDiv = document.getElementById('myDiv');

Sie einfach den offensichtlich auszuschließen (da sonst niemand erwähnt), das ist ein Syntaxfehler in JS:

lths.innerHTML = 'this is text line"

Nicht sicher, ob dies ein Tippfehler hier war, oder wenn Sie es aus dem Code kopiert. Sie können entweder " oder ' verwenden, aber nicht beide einen String zu umgeben. Außerdem sollten Sie Semikolons als Best Practice verwenden beendet (obwohl es nicht erforderlich ist).

lths.innerHTML = 'this is text line';

Die <%= myControl.ClientId %> Technik funktioniert nicht, wenn Sie Masterseiten verwenden. Das könnte der Fall sein. Was können Sie tun, ist: ein verstecktes Feld nehmen. Speichern Sie die ID des Etiketts in dem verborgenen Bereich. Besuchen Sie das value-Attribut, um die ID und dann verwenden document.getElementByID('HiddenField.Value') den Griff zu bekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top