1

これは、アンカータグをクリックしてテキストボックスを表示するための私のjqueryです

$("a").click(function () {

var textbox = $('<input id="txt1" type="text" />')

var oldText = $(this).text();

 $(this).replaceWith(textbox);

           textbox.val(oldText);

     $(this).html($('<input id="txt1" type="text" />').val())

     });

私のアンカータグ

 <a>hello</a>

テキストボックスがテキストで表示されているときにこれを使用して、テキストボックス内のテキストを変更し、アンカータグの新しいテキストを表示したい

4

2 に答える 2

1

これを試して :

jQuery(document).ready(function(){

$('html').click(function(e){
        if(e.target.id == 'txt1' || e.target.id == 'link1') {
                var textbox = $('<input id="txt1" type="text" />')
                var oldText = $(jQuery("#link1")).text();
                $(jQuery("#link1")).replaceWith(textbox);
                textbox.val(oldText);
                $(jQuery("#link1")).html($('<input id="txt1" type="text" />').val())
       } else {
          var newText =  jQuery('#txt1').val()
          var link = jQuery("<a id='link1'></a>");
          jQuery('#txt1').replaceWith(link);
          jQuery('#link1').text(newText);
      }
    });
});
</script>
<html>
<body>
<a id="link1">hello</a></body>
</html>

これがデモです

于 2012-06-28T09:28:56.447 に答える
1

何を取得しようとしているのか正確にはわかりませんが、次のコードは動的アンカー テキスト編集を行います。<a>要素を置き換える必要はないと思います。非表示にするだけです。

$("a").click(function() {
    $("<input />").val($(this).hide().text()).on("blur", function() {
        $(this).prev("a").text(this.value).show();
        $(this).remove();
    }).insertAfter(this).trigger("focus");
});​

デモ: http://jsfiddle.net/8dpyG/

于 2012-06-28T09:24:31.960 に答える