コードを使用すると、恐れています:
<div id="sentence_xx"></div>
私はいつもたくさんのjqueryコードを印刷しなければなりません。
このリンクでコードを見ることができます:
http://jsfiddle.net/hBRNy/2/
問題は、div 文がたくさんあることです。
<div id="sentence_xx"></div>
そして、私はそれを印刷したいたびに、< div>ごとにjqueryブロック全体を印刷する必要があります。
誰かが私がこれを解決する方法を知っていますか? jqueryが生成するIDは一意でなければならず、これがより柔軟になることを望んでいましたが、方法がわかりません。
敬具
jqueryワイルドカードを使用して解決策を見つけました(ui.jqueryが機能しなくなるため、IDをクラスに置き換えることはできません:
<script>
$(document).ready(function() {
// For everey id, started with sentence_ (the sentences which I want)
$('[id^=sentence_]').each(function() {
// strip the id until i have the number only (sentence_ is a static value)
var currentId = $(this).attr('id');
var toRemove = "sentence_";
var id = currentId.replace(toRemove,'');
//replace all the characters by "</li> <li class=\"ui-widget-content_"+id+"\">"
var text = $("#"+currentId).text().trim().split("").join("</li> <li class=\"ui-widget-content_"+id+"\">");
$("#"+currentId).html("<li class=\"ui-widget-content_"+id+"\">" + text + "</li>");
//create a <ol> after the div selectable_xx
$('<ol class="selectable_style" id="selectable_'+id+'"></ol>').insertAfter("#"+currentId);
// remove the value of the div and place them into the <ol>
$('.ui-widget-content_'+id+'').clone().appendTo("#selectable_"+id);
$('#sentence_'+id).remove();
//replace all the " " by non breaking spaces
$('#selectable_'+id+' li').each(function() {
$(this).html($(this).text().replace(' ', ' '));
});
//attache the function for selecting items and put the character place into the next span
$( "#selectable_"+id ).selectable({
stop: function() {
var woord ="" ;
var result = $( "#selectable_"+id ).next('span').empty();
$( ".ui-selected", this ).each(function() {
var index = $( "#selectable_"+ id +" li" ).index( this );
result.append( " #" + ( index + 1 ) );
letter = index + 1;
woord += letter+'';
});
}
});
});
});
</script>
あなたがそれで遊びたいなら、私はコードを更新しました
http://jsfiddle.net/hBRNy/16/