0

完全な初心者で、パーソナライズ可能な聖書を作成しようとしています。ユーザーは、単語/フレーズを直接クリックすることで、個々の単語/フレーズの代替翻訳を繰り返すことができます。関数に何らかの「forループ」が必要なことはわかっていますが、それらの設定をキャッシュとユーザープロファイルに(文字列として?)保存したいので、ページの読み込み時にテキストをデフォルトにリセットしないでください。理想的には、HTMLをできるだけ整理したまま、以下のように代替テキストオプション(「配列」?)をHTMLに埋め込みます。JSには、最終的には数千のIDが入力され、おそらく聖書の1節あたり数個になるため、スクリプトを一般化できるほど優れています。前もって感謝します!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
<script>
$(document).ready(function() {
    $('.alternate').click(function() {
        $('#1Cor13-4a').text('[What goes here if I want to cycle through the options listed in HTML?]');
        $('#1Cor13-4b').text('[Ditto]');
    });
});
</script>

My <span class="alternate" id="1Cor13-4a" onclick="ChangeText({"care","love"})">love</span><span class="alternate" id="1Cor13-4b" onclick="ChangeText({"is patient with","suffers long for"})">is patient with</span> you.
4

1 に答える 1

1

data- 属性を使用します...

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
<script>
$(document).ready(function() {
 $('.alternate').click(function() {
       var index=   $(this).attr("data-text-index");
     var text = $.parseJSON($(this).attr("data-text"));
     if(index== null)
         index = -1;
     index = Number(index)+1>=text.length? 0:Number(index)+1;
     $(this).html(text[index]);
     $(this).attr("data-text-index",index);
  });
});
</script>
My <span class="alternate" id="1Cor13-4a" data-text='["care","love"]'>love</span><span class="alternate" id="1Cor13-4b" data-text='[" is patient with"," suffers long for"]'> is patient with</span> you.
于 2013-02-05T23:57:23.283 に答える