将元素从span更改为input

时间:2017-05-30 15:45:42

标签: jquery

我正在尝试将span字段的类型更改为select上的输入字段。目前我已经找到了在单击元素时更改元素的代码,但是我试图找到一种方法来在单击另一个元素时更改该元素。

这是我当前的小提琴:http://jsfiddle.net/2D9FW/281/

<span class="loadNum">5566</span><a class="editrow" style="display: 
float-left"data-value="">  clickme</a>
<br />
<span class="loadNum">5566</span><a class="editrow" style="display: 
float-left"data-value=""> clickme</a>



    var switchToInput = function () {
    var $input = $("<input>", {
        val: $(this).text(),
        type: "text"
    });
    $input.addClass("loadNum");
    $(this).replaceWith($input);
    $input.on("blur", switchToSpan);
    $input.select();
};
var switchToSpan = function () {
    var $span = $("<span>", {
        text: $(this).val()
    });
    $span.addClass("loadNum");
    $(this).replaceWith($span);
    $span.on("click", switchToInput);
}
$(".loadNum").on("click", switchToInput);

1 个答案:

答案 0 :(得分:0)

你可以利用Jquery .prev()来实现你想要的东西

试试这个

var switchToInput = function () {
    var $input = $("<input>", {
        val: $(this).prev('.loadNum').text(),
        type: "text"
    });
    $input.addClass("loadNum");
    $(this).prev('.loadNum').replaceWith($input);
    $input.on("blur", switchToSpan);
    $input.select();
};

检查Fiddle