1

コードに大きな追加機能があります。この追加機能では、テキストエリアにテキストを入力しています。このテキストでは、引用符 (") を使用することもできますが、追加関数がこれらの引用符を区切り引用符として解釈するため、これが問題を引き起こしていますが、そうすべきではありません。

それらの引用符を回避する方法についてアイデアはありますか? ありがとうございました。

編集:これが私の追加機能です:

$('#add_affiliation').append(
            '<div id="affiliation_'+affiliation_id+'title" class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'+
                '<span id="affiliation_title'+affiliation_id+'" class="ui-dialog-title">Affiliation '+affiliation_id+'</span>'+
                '<a href="#delete_affiliation" id="delete_affiliation_'+affiliation_id+'" onclick="deleteAffiliation(\''+affiliation_id+'\');" >'+
                    '<img style="float:right" src="/css/images/delete_affiliation.png" />'+
                '</a>'+
            '</div>'+
            '<div id="affiliation_'+affiliation_id+'content" class="ui-dialog-content ui-widget-content">'+
                '<label for="add_affiliations"></label>'+
                '<div id="add_affiliation_'+affiliation_id+'" style="overflow: hidden" class="element">'+
                    '<table id="affiliation_table" style="table-layout:fixed;">'+
                    '<tbody>'+
                        '<tr>'+
                            '<td style="height:30px; width:65px;" align="right"><font size="2"><b>N°:</b></font></td>'+
                            '<td align="left" style="height:30px; width:700px;">'+
                                '<input type="text" name="number"; id="number'+affiliation_id+'"; value="'+article_affiliations[i].number+'" />'+
                            '</td>'+
                        '</tr>'+
                        '<tr>'+
                            '<td style="height:30px; width:65px;" align="right"><font size="2"><b>Affiliation:</b></font></td>'+
                            '<td align="left" style="height:30px; width:700px;">'+
                                '<input type="text" name="affiliation" id="affiliation'+affiliation_id+'" value="'+article_affiliations[i].name+'" style="width: 100%;" />'+
                            '</td>'+
                        '</tr>'+
                        '<tr>'+
                            '<td style="height:30px; width:65px;" align="right"><font size="2"><b>Country:</b></font></td>'+
                            '<td align="left" style="height:30px; width:700px;">'+
                            '<select id="country'+affiliation_id+'";></select>'+
                            '<img style="vertical-align:bottom; " src="/css/images/Warning.png"; id="country_warning'+affiliation_id+'"; width="20px"; height="20px"; alt="-"; />'+
                            '<span id="country_warning_message'+affiliation_id+'" style="visibility:hidden; color:red;"></span>'+
                            '</td>'+
                        '</tr>'+
                    '</tbody>'+
                '</table>'+
            '</div>'+
        '</div>');
4

2 に答える 2

2

基本的に、値を指定せずに通常の追加を行い.find(selector).val(value)、各要素で使用します。

$('<div id="affiliation_'+affiliation_id+'title" class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">'+
            '<span id="affiliation_title'+affiliation_id+'" class="ui-dialog-title">Affiliation '+affiliation_id+'</span>'+
            '<a href="#delete_affiliation" id="delete_affiliation_'+affiliation_id+'" onclick="deleteAffiliation(\''+affiliation_id+'\');" >'+
                '<img style="float:right" src="/css/images/delete_affiliation.png" />'+
            '</a>'+
        '</div>'+
        '<div id="affiliation_'+affiliation_id+'content" class="ui-dialog-content ui-widget-content">'+
            '<label for="add_affiliations"></label>'+
            '<div id="add_affiliation_'+affiliation_id+'" style="overflow: hidden" class="element">'+
                '<table id="affiliation_table" style="table-layout:fixed;">'+
                '<tbody>'+
                    '<tr>'+
                        '<td style="height:30px; width:65px;" align="right"><font size="2"><b>N°:</b></font></td>'+
                        '<td align="left" style="height:30px; width:700px;">'+
                            '<input type="text" name="number"; id="number'+affiliation_id+'"; value="" />'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td style="height:30px; width:65px;" align="right"><font size="2"><b>Affiliation:</b></font></td>'+
                        '<td align="left" style="height:30px; width:700px;">'+
                            '<input type="text" name="affiliation" id="affiliation'+affiliation_id+'" value="" style="width: 100%;" />'+
                        '</td>'+
                    '</tr>'+
                    '<tr>'+
                        '<td style="height:30px; width:65px;" align="right"><font size="2"><b>Country:</b></font></td>'+
                        '<td align="left" style="height:30px; width:700px;">'+
                        '<select id="country'+affiliation_id+'";></select>'+
                        '<img style="vertical-align:bottom; " src="/css/images/Warning.png"; id="country_warning'+affiliation_id+'"; width="20px"; height="20px"; alt="-"; />'+
                        '<span id="country_warning_message'+affiliation_id+'" style="visibility:hidden; color:red;"></span>'+
                        '</td>'+
                    '</tr>'+
                '</tbody>'+
            '</table>'+
        '</div>'+
    '</div>')
    .find('#number' + affiliation_id)
        .val(article_affiliations[i].number)
        .end()
    .find('#affiliation' + affiliation_id)
        .val(article_affiliations[i].name)
        .end()
    .appendTo('#add_affiliation')

デモ

于 2012-12-04T09:56:57.623 に答える
1

引用符\"の前にバックラッシュを使用する か、単一引用符を使用して文字列' " 'を囲みます。

文字列は、一重引用符 (この場合、文字列内の二重引用符をエスケープする必要はありません) または二重引用符 (この場合、一重引用符をエスケープする必要はありません) で区切ることができることに注意してください。

さらに、次のようなものを使用できます

var doubleQuoutesEscaped = originalString.split('"').join('\\"');
var singleQuoutesEscaped = originalString.split("'").join("\\'");
于 2012-12-04T09:46:26.980 に答える