0

私は持っている:

<input type="hidden" id="notifications" value="@ViewBag.Notifications" />

この行にブレークポイントを設定して値を確認すると、値が次のようになっていることがわかります。

[{"id":"42647","isRead":0,"MessageType":3},{"id":"fsh3hg","isRead":0,"MessageType":2}]

ページの読み込み時に JavaScript でこの値を解析したいので、次のように書きました。

var notifications = document.getElementById('notifications').value;
alert(notifications); // it prints undefined
alert(document.getElementById('notifications')); // it prints: Object HtmlSpanElement

var parsedNotifications;

if (notifications != '') {
    parsedNotifications = JSON.parse(notifications);
}

しかし、次の行に「Uncaught SyntaxError: Unexpected token u」というエラーが表示されます。

parsedNotifications = JSON.parse(notifications);

なぜこのエラーが発生するのですか?

4

2 に答える 2

4

あなたが書いた:

alert(document.getElementById('notifications')); // it prints: Object HtmlSpanElement

コメントでHtmlSpanElementは、何かが間違っているという手がかりです。どうやら、ページにはhiddenと同じ<span>aがあるidため、間違った要素が見つかり、a に値がないために返されます。<input>document.getElementByIdvalueundefined<span>

を「通知」以外のものに変更すると、コードが機能するはずidです。<span>

于 2013-07-23T19:31:50.377 に答える