0

私はページ上に文字通りのコントロールを持っています(それにいくつかのデータがあります)。javascriptでアクセスしたいのですが、テキストを入れたいです。javascriptでリテラルコントロールにアクセスする方法を教えてください。(私はasp.netを使用しています)

javascriptの私のコード(しかし動作していません):

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

4 に答える 4

5

を使用して見つけることができます。.NET4.0をdocument.getElementById('<%= myControl.ClientID %>')使用している場合は、JavaScriptによってプルされるIDフィールドを直接設定できます。または、 jqueryのセレクターを使用することもできます。リテラルコントロールは要素としてレンダリングされず、静的テキストのみがレンダリングされるため、コードは機能していません。その周りにスパンを配置するか、スパンとしてレンダリングされるラベルコントロールを使用できます。

于 2010-02-09T05:07:14.133 に答える
3

リテラル コントロールは周囲のタグなしで純粋な値をレンダリングするだけなので、JavaScript クライアント コードからリテラル コントロールにアクセスできるとは思いません。したがって、IDで取得できる要素は実際にはありません。

できることは、リテラル コントロールをラベル コントロールに変更することです。これは、デフォルトで html span タグとしてレンダリングされます。そのように、クライアント側で選択できます。

別のオプションは、次のように、サーバー側のリテラル コントロールに span または div タグを記述することです。

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

クライアントでは、次を使用して要素を選択できます。

var myDiv = document.getElementById('myDiv');
于 2010-02-09T08:26:27.490 に答える
1

明白なことを除外するために (他の誰も言及していないため)、これは JS の構文エラーです。

lths.innerHTML = 'this is text line"

これがここでの入力ミスなのか、コードからコピーしたのかはわかりません。文字列を囲むには、どちらか一方を使用できますが、両方を"使用することはできません。'また、ベスト プラクティスとしてセミコロンを使用する必要があります (ただし、必須ではありません)。

lths.innerHTML = 'this is text line';
于 2010-02-09T08:48:28.427 に答える
0

<%= myControl.ClientId %>マスター ページを使用している場合、この手法は機能しません。そうかもしれません。あなたができることは次のとおりです。隠しフィールドを取ります。非表示フィールドにラベルの ID を保存します。value 属性にアクセスして ID を取得し、それを使用document.getElementByID('HiddenField.Value')してコントロールを取得します。

于 2010-02-09T05:24:20.610 に答える