0

テストがあり、ヒント関数が必要です。

ユーザーがヒントをクリックすると、回答の最初の文字が入力フィールドに書き込まれる必要があります。もう一度クリックすると、2 番目の文字が追加されます。

答えは、次のように data-right データ属性に書き込まれます。

<div class="question">
    <input class="input" type="text" placeholder="(gehen)" data-right="gegangen" />
    <div class="res"><b></b></div>
    <a class="hint">Hint</a>
</div>

質問、

これを行う最も簡単な方法は何ですか? 基本的に、.hint?

DOM ナビゲーションは処理できると思いますが、出力の方法がわかりません。

4

2 に答える 2

3

jQuery.data()メソッドを使用してdata-*属性の値を取得し、値.val()を設定するメソッドを使用できます。

$('a.hint').on('click', function(event) {
    event.preventDefault();
    $(this).closest('.question').find('input').val(function(_, val){
        var i = val.length,
            right = $(this).data('right');

        if (right.indexOf(val) !== 0) return right.slice(0, 1); 
        return val + right.slice(i, i+1);
    })
})

http://jsfiddle.net/HN8gs/

于 2013-05-28T11:21:16.007 に答える