我有一个标准的html标签,值:

<label id="telefon" value="101"></label>

我想通过单击标签来编​​辑此值,然后在出现的文本框中输入新值(例如value="202")。

我该怎么做一件棘手的事情?

我用JQuery函数尝试过,但是它确实无法正常工作:
$(function() {

  $('a.edit').on("click", function(e) {
    e.preventDefault();
    var dad = $(this).parent().parent();
    var lbl = dad.find('label');
    lbl.hide();
    dad.find('input[type="text"]').val(lbl.text()).show().focus();
  });

  $('input[type=text]').focusout(function() {
    var dad = $(this).parent();
    $(this).hide();
    dad.find('label').text(this.value).show();
  });

});

最佳答案

ojita,由于您没有提供标记,因此请查看此工作示例

$(document).on("click", "label.mytxt", function () {
    var txt = $(".mytxt").text();
    $(".mytxt").replaceWith("<input class='mytxt'/>");
    $(".mytxt").val(txt);
});

$(document).on("blur", "input.mytxt", function () {
    var txt = $(this).val();
    $(this).replaceWith("<label class='mytxt'></label>");
    $(".mytxt").text(txt);
});

09-25 16:54