我设法通过点击它来更改我的div的内容,但我不知道如何通过再次点击返回到该div的原始内容。
http://jsfiddle.net/8c9hL9xm/1/
第一次点击时,内容从“点击”变为“CLICK2”, 在第二次单击时,内容不会更改为“单击”。
Html:
<div class="button"><a href="#link1">CLICK</a></div>
脚本:
$(document).ready(function(){
$('.button').click(function() {
$(this).html('<a href="#link2">CLICK2</a>');
});
});
有什么想法吗?感谢。
答案 0 :(得分:1)
试一试:
$(document).ready(function(){
$('.button').click(function() {
if($(this).html().indexOf("CLICK2") > 0){
$(this).html('<a href="#link">CLICK</a>');
} else {
$(this).html('<a href="#link2">CLICK</a>');
}
});
});
或使用REGEX语句检查您正在处理的内容类型。
答案 1 :(得分:1)
您的代码会在每次点击时重置点击元素的html内容,切换元素的内容不是html
方法的默认行为。您可以更改innerHTML
子项的属性,而不是重置元素的a
:
$('.button').click(function () {
$(this).children('a').attr('href', function (_, currentHref) {
return currentHref === '#link1' ? '#link2' : '#link1';
}).text(function (_, currentText) {
return currentText === 'CLICK' ? 'CLICK2' : 'CLICK1';
});
});
您还可以使用toggle
或toggleClass
方法:
<div class="button">
<a href="#link1">CLICK</a>
<a href="#link2" class='hidden'>CLICK2</a>
</div>
JavaScript的:
$('.button').click(function () {
$(this).children('a').toggleClass('hidden');
});
答案 2 :(得分:1)
使用内容数组?
var i = 0,
contents = ['<a href="#link1">CLICK</a>', '<a href="#link2">CLICK2</a>'];
$(document).ready(function () {
$('.button').click(function () {
(i < contents.length - 1) ? i++ : i = 0;
$(this).html(contents[i]);
});
});
<强> Updated Fiddle 强>