jQuery:使用span的值填充文本框

时间:2014-11-12 00:42:34

标签: javascript jquery

看看这个小提琴:http://jsfiddle.net/7vcZT/

正如您所看到的那样,但当您单击文本并将其变为文本框时,会出现两个问题:

  1. 旧文字未显示在文本框中
  2. 如果您在没有输入任何内容的情况下意外点击,则它会完全消失而不是显示旧文本。
  3. 因此,(当某人点击文字并显示文本框时)如何获取要在文本框中显示的SPAN的值?

    谢谢!

    代码以防您不想访问小提琴:

    $(".editDIV").click(function(){
        $(this).find("span")[0].style.display="none";
        $(this).find("input")[0].style.display="block";
        $(this).find("input")[0].focus();
    });
    
    $(".editINPUT").blur(function(){
        $(this)[0].style.display="none";
        $(this).prev()[0].innerText=$(this)[0].value;
        $(this).prev().show();
    })
    

2 个答案:

答案 0 :(得分:2)

您可以使用.text()从范围中获取文字并将其插入输入值.val()

http://jsfiddle.net/7vcZT/16/

$(".editDIV").click(function(){
    $(this).find("input").val($(this).find('span').text());
    $(this).find("span")[0].style.display="none";
    $(this).find("input")[0].style.display="block";
    $(this).find("input")[0].focus();
});

答案 1 :(得分:2)

尝试:

$(".editDIV").click(function () {
    $(this).find("span").toggle();
    $(this).find("input").val($(this).find('span').text()).toggle().focus();
});
$(".editINPUT").blur(function () {
    $(this).hide().prev().text($(this).val()).show();
})

<强> jsFiddle example