需要更换+;/-带有html代码的字符(例如)— 在jQuery的一小部分中
我有一个相当普通的jQuery,它在单击+时切换div的可见性,在单击-时隐藏它(单击+时+变为-)。问题是+/-切换程序跟随某些文本,这些文本中有时包含+或-以及两者切换。例如:了解更多关于blah blah+的信息。单击时,加号变为减号。再次单击时,两个负数都将变为正数 我想如果我把+改成a需要更换+;/-带有html代码的字符(例如)— 在jQuery的一小部分中,jquery,toggle,Jquery,Toggle,我有一个相当普通的jQuery,它在单击+时切换div的可见性,在单击-时隐藏它(单击+时+变为-)。问题是+/-切换程序跟随某些文本,这些文本中有时包含+或-以及两者切换。例如:了解更多关于blah blah+的信息。单击时,加号变为减号。再次单击时,两个负数都将变为正数 我想如果我把+改成a+和a减去a—;在jquery中,它可以解决问题,但它不起作用。div可见性将打开/关闭,但加号/减号不会更改 以下是脚本: function toggleSpecial(element)
+代码>和a减去a—
;在jquery中,它可以解决问题,但它不起作用。div可见性将打开/关闭,但加号/减号不会更改
以下是脚本:
function toggleSpecial(element)
{
jQuery(element).next(".hidden").slideToggle("fast");
jQuery(element).html(function(i,html) {
if (html.indexOf('+') != -1 ){
html = html.replace('+','-');
} else {
html = html.replace('-','+');
}
return html;
});
}
下面是用HTML代码替换+和-的脚本,它不起作用
function toggleSpecial(element)
{
jQuery(element).next(".hidden").slideToggle("fast");
jQuery(element).html(function(i,html) {
if (html.indexOf('+') != -1 ){
html = html.replace('+','—');
} else {
html = html.replace('—','+');
}
return html;
});
}
有没有关于我做错了什么的想法或建议?谢谢 你的可视性是基于完全随意的切换。为什么不看看它是否可见?此外,您可以将角色包装成一个跨度,然后执行以下操作:
$('#iamelement').click(function() {
var $this = $(this);
$this.next(".hidden").slideToggle("fast", function() {
$this.find('span').text($(this).is(':visible') ? '-' : '+');
});
});
<a href="#" id="iamelement">toggle thing <span>+</span></a>
<div class="hidden">
thing
</div>
这将适用于以下情况:
$('#iamelement').click(function() {
var $this = $(this);
$this.next(".hidden").slideToggle("fast", function() {
$this.find('span').text($(this).is(':visible') ? '-' : '+');
});
});
<a href="#" id="iamelement">toggle thing <span>+</span></a>
<div class="hidden">
thing
</div>
事情
证据就在这里:
补充:
要使其通用,您需要使用类而不是ID。我只是想说明一下
<a href="#" class="toggler">toggle thing <span>+</span></a>
<div class="hidden">
thing
</div>
<a href="#" class="toggler">toggle thing 2 <span>+</span></a>
<div class="hidden">
thing 2
</div>
<a href="#" class="toggler">toggle thing 3 <span>+</span></a>
<div class="hidden">
thing 3
</div>
$('a.toggler').click(function() {
var $this = $(this);
$this.next(".hidden").slideToggle("fast", function() {
$this.find('span').text($(this).is(':visible') ? '-' : '+');
});
});
事情
事情2
事情3
$('a.toggler')。单击(函数(){
var$this=$(this);
$this.next(“.hidden”).slideToggle(“fast”,function()){
$this.find('span').text($(this.is)(':visible')?'-':'+');
});
});
为什么不将+括在一个div中,只在该div中切换?他/她很可能正在单击a
,我们都知道a
s是内联元素,而div
s是块元素<代码>
是他/她想要的,假设他/她想通过验证!如果我在下面给出的答案是你想要的,请将它标记为答案。谢谢你的回复亚当。。。如果我不能为每个实例添加唯一的ID怎么办?此外,示例中的第二个切换也可以使用。谢谢这是因为我的HTML中有两个ID,但只引用了一个。请参阅上面的更新,以了解有关在没有ID的情况下使其通用的更多信息。如果此答案是您要查找的答案,请将其标记为答案。