1

<strong>Title</strong>すべてのタグ<input type="text" value="Title"><p>Content</p>タグをタグに変更するプロファイル ページを作成してい<textarea>Content</textarea>ます。

これはこれでうまく機能します:

$(this).html(function(i, h) {
  return h
    .replace(/<strong>/g, "<input type=\"text\" value=\"")
    .replace(/<\/strong>/g, "\" class=\"profile-header\">")
    .replace(/<p>/g, "<textarea>")
    .replace(/<\/p>/g, "</textarea>");
});

<strong>ただし、タグとタグのセットごとに ID が必要です<p>(プロファイルのさまざまな部分を表すため)。私が抱えている問題は、これらの ID を追加することです。これを次の<strong>ようにタグに付けました。<strong data-id="0">しかし、使用している正規表現が正しく機能しない理由がわかりません。

ここに私がこれまでに持っているものがあります。うまくいけば、私が達成しようとしていることを見ることができます:

$(this).html(function(i, h) {
  return h
    .replace(/<strong data-id=\"(\i+)\">/g, "<input $1 type=\"text\" value=\"")
    .replace(/<\/strong>/g, "\" class=\"profile-header\">")
    .replace(/<p>/g, "<textarea>")
    .replace(/<\/p>/g, "</textarea>");
});

参考までに、これは HTML を元の状態に戻す方法 (およびデータの保存方法) です。

$(".column.about input").each(function() {

    // Get the titles and content from the inputs and textareas
    var content_id = $(this).data("id");
    var title = $(this).val();
    var content = $(this).next().val();

    // We're changing the content first so we don't loose $(this)
    $(this).next().after("<p>" + content + "</p>").remove();
    $(this).after("<strong data-id=\"" + content_id + "\">" + title + "</strong>").remove();

    $.post("../includes/ajax.php", { action: "updateProfile", section: "about", id: content_id, title: title, content: content }).done(function(data) {

        if(data != "saved") {

        throwErrorMessage(data);

      }

    });

});
4

1 に答える 1

0

これが私がやったことです(正規表現なし):

$(".column.about strong").each(function() {

    // Get the titles and content from the strong and p tags
    var content_id = $(this).data("id");
    var title = $(this).text();
    var content = $(this).next().text();

    // We're changing the content first so we don't loose $(this)
    $(this).next().after("<textarea>" + content + "</textarea>").remove();
    $(this).after("<input type=\"text\" data-id=\"" + content_id + "\" value=\"" + title + "\">").remove();

});

そして、それは機能します。幸せな日々。

于 2013-08-26T21:10:30.683 に答える