1

入力フィールドを含むリスト項目を動的に追加する To Do リスト アプリケーションに取り組んでいます。入力の値を変更すると、(明らかに) 変更されていることがわかります。また、jQuery を介して val() を取得することによっても変更されています。

    $('#theList').on('change', '.listItem', function(e){
    currentList = $(this).val();
    alert(currentList); /* Changed value appears */
});

ただし、私の最終的な目標は、タグ全体の innerHTML を取得し、それをローカル ストレージに保存することです。だから、私がこれを行うと:

    $('#theList').on('change', '.listItem', function(e){
    currentList = $('#theList').html();
    alert(currentList); /* List with unchanged value appears */
});

すべてのリスト項目を元の状態で取得し、変更された値は破棄されます。

非推奨/削除された .live() メソッドではなく、.on() メソッドを使用しています。私のルーチン全体は document.ready() でラップされています。

私は何が欠けていますか?

ヘッドバンギングウォールジョー

4

2 に答える 2

1

ユーザー入力を使用して、または手動で値を変更してval()も、HTML 属性は変更されず、要素の値のプロパティが変更され、 では取得できませんhtml()

で値をattr('value', 'something')変更すると、属性と取得するマークアップが変更されますがhtml()、マークアップを localStorage に保存するという概念全体を本当に再考し、代わりにキー/値だけを保存する必要があります。

于 2013-07-14T23:44:53.930 に答える
0

コンテンツを表示する前に、新しいコンテンツを #theList div に追加するのはどうですか?

別のアプローチは、jQuery の .html() メソッドを介してコンテンツ全体を置き換えることです。次の例を参照してください。

コード例:

$('#theList').on('change', '.listItem', function(e){
    currentList = $(this).val();
    alert(currentList); /* Changed value appears */
    $('#theList').html(currentList);
});

PS: 私はそれをテストしませんでした...しかし、あなたが jsFiddle を提供するなら、喜んでそうします ;)

于 2013-07-14T23:43:08.590 に答える