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;
$(此)。替换为(“”);
});
})(链接);
});