Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery中有多个替换?_Javascript_Jquery_Replacewith - Fatal编程技术网

Javascript jQuery中有多个替换?

Javascript jQuery中有多个替换?,javascript,jquery,replacewith,Javascript,Jquery,Replacewith,为什么这样不行?要获得这种效果,什么可能是可行的解决方案 $(document).ready(function() { $('#myLink1').click( function() { $('#myLink1').replaceWith('<a id="myLink2" href="#panel2">#panel2</a>'); }); $('#myLink2').click( function() { $

为什么这样不行?要获得这种效果,什么可能是可行的解决方案

$(document).ready(function() {

  $('#myLink1').click(
    function() { 
      $('#myLink1').replaceWith('<a id="myLink2" href="#panel2">#panel2</a>');
    });

  $('#myLink2').click(
    function() { 
      $('#myLink2').replaceWith('<a id="myLink3" href="#panel3">#panel3</a>');
    });

});
$(文档).ready(函数(){
$('#myLink1')。单击(
函数(){
$('#myLink1')。替换为('';
});
$('#myLink2')。单击(
函数(){
$('#myLink2')。替换为('';
});
});
我不熟悉循环以及如何添加字符串和变量

$(document).ready(function() {
  var panelNum = 8;
  for (i=1;i<=panelNum;i++){
    $('#myLink'+i).click(function() { 
      $('#myLink'+i).replaceWith('<a id="myLink'+(i+1)+'" href="#panel'+(i+1)+'">#panel'+(i+1)+'</a>');
    });
  };
});
$(文档).ready(函数(){
var-panelNum=8;

对于(i=1;i而言,问题是在单击
mylink
之前,
myLink2
不存在。必须在创建
myLink2
处理程序后添加该处理程序。请尝试以下操作:

function add_replace_with(i){
 $('#myLink'+i).click(
    function() {
     do_replace_with(i)
          return false;
    });
}
     function do_replace_with(i){
       $('#myLink'+i).replaceWith('<a id="myLink'+(i+1)+'" href="#panel'+(i+1)+'">#panel'+(i+1)+'</a>');

     $('#myLink'+(i+1)).click(
      function() {
        do_replace_with(i+1)
      });   
     }

$(document).ready(function() {
 add_replace_with(1);
});
函数添加\替换\为(i){
$(“#myLink”+i)。单击(
函数(){
是否用(i)替换
返回false;
});
}
函数do_替换为(i){
$('#myLink'+i).替换为('');
$('#myLink'+(i+1))。单击(
函数(){
是否用(i+1)替换
});   
}
$(文档).ready(函数(){
用(1)添加_替换_;
});

我应该注意到,您最好对链接进行硬编码,只使用
.show()
切换链接。

问题是
myLink2
在单击
mylink
之前不存在。您必须在创建后添加
myLink2
处理程序。请尝试以下操作:

function add_replace_with(i){
 $('#myLink'+i).click(
    function() {
     do_replace_with(i)
          return false;
    });
}
     function do_replace_with(i){
       $('#myLink'+i).replaceWith('<a id="myLink'+(i+1)+'" href="#panel'+(i+1)+'">#panel'+(i+1)+'</a>');

     $('#myLink'+(i+1)).click(
      function() {
        do_replace_with(i+1)
      });   
     }

$(document).ready(function() {
 add_replace_with(1);
});
函数添加\替换\为(i){
$(“#myLink”+i)。单击(
函数(){
是否用(i)替换
返回false;
});
}
函数do_替换为(i){
$('#myLink'+i).替换为('');
$('#myLink'+(i+1))。单击(
函数(){
是否用(i+1)替换
});   
}
$(文档).ready(函数(){
用(1)添加_替换_;
});
我应该注意到,您最好对链接进行硬编码,然后使用
.show()
切换链接。

或者:

$(function() {
  $('body')
    .delegate('#myLink1', 'click', function() {
      $(this).replaceWith('<a id="myLink2" href="#panel2">#panel2</a>');
    })
    .delegate('#myLink2', 'click', function() {
      $(this).replaceWith('<a id="myLin32" href="#panel3">#panel2</a>');
    })
  ;
 });
$(函数(){
$(“正文”)
.delegate('#myLink1',click',function(){
$(此)。替换为(“”);
})
.delegate('#myLink2',click',function(){
$(此)。替换为(“”);
})
;
});
为了将这一点推广到所有此类链接,使用类似的命名约定:

$(function() {
  for (var link = 1; link < 8; ++link)
    (function(link) {
      $('body').delegate('#myLink' + link, 'click', function() {
        var nxt = link + 1;
        $(this).replaceWith('<a id="#myLink' + nxt + '" href="#panel' + nxt + '">panel ' + nxt + '</a>');
      });
    })(link);
});
$(函数(){
用于(变量链接=1;链接<8;++link)
(功能(链接){
$('body')。委托('myLink'+链接,'click',函数(){
var nxt=链路+1;
$(此)。替换为(“”);
});
})(链接);
});
或者:

$(function() {
  $('body')
    .delegate('#myLink1', 'click', function() {
      $(this).replaceWith('<a id="myLink2" href="#panel2">#panel2</a>');
    })
    .delegate('#myLink2', 'click', function() {
      $(this).replaceWith('<a id="myLin32" href="#panel3">#panel2</a>');
    })
  ;
 });
$(函数(){
$(“正文”)
.delegate('#myLink1',click',function(){
$(此)。替换为(“”);
})
.delegate('#myLink2',click',function(){
$(此)。替换为(“”);
})
;
});
为了将这一点推广到所有此类链接,使用类似的命名约定:

$(function() {
  for (var link = 1; link < 8; ++link)
    (function(link) {
      $('body').delegate('#myLink' + link, 'click', function() {
        var nxt = link + 1;
        $(this).replaceWith('<a id="#myLink' + nxt + '" href="#panel' + nxt + '">panel ' + nxt + '</a>');
      });
    })(link);
});
$(函数(){
用于(变量链接=1;链接<8;++link)
(功能(链接){
$('body')。委托('myLink'+链接,'click',函数(){
var nxt=链路+1;
$(此)。替换为(“”);
});
})(链接);
});