我想点击:
更改span
元素的文字
$('.int-bank h2 span').text('Open List');
$('.int-bank h2').bind("click", function (e) {
$(this).next("p").toggleClass("lblock");
var spn = $(this).find("span");
spn.text('Close List');
});
但是在第二次单击时,span的文本不会更改为“Open List”。我怎么能这样做?
答案 0 :(得分:5)
太糟糕了,没有toggleText()
;-)。你必须自己检查一下这个值:
spn.text(spn.text() == 'Open List' ? 'Close List' : 'Open List');
嘿,虽然我在,但为什么不做一个toggleText()
:
$.fn.toggleText = function (text1, text2) {
var curText = this.text();
this.text(!$.trim(curText) ? text1 :
(curText == text1 ? text2 : text1));
return this;
};
然后简化你的代码:
$('.int-bank h2 span').text('Open List');
$('.int-bank h2').click(function () {
$(this).next('p').toggleClass('lblock');
$(this).find('span').toggleText('Open List', 'Close List');
});
答案 1 :(得分:4)
那是因为你从未在点击中将其设置为“打开列表”。
$('.int-bank h2').bind("click", function (e) {
$(this).next("p").toggleClass("lblock");
var spn = $(this).find("span");
spn.text(spn.text() === "Close List" ? "Open List" : "Close List");
});
除此之外:如果您正在努力简洁,可以使用click
处理程序:
$('.int-bank h2').click(function (e) {
$(this).next("p").toggleClass("lblock");
var spn = $(this).find("span");
spn.text(spn.text() === "Close List" ? "Open List" : "Close List");
});
答案 2 :(得分:1)
$('.int-bank h2').click(function(e) {
$(this).next("p").toggleClass("lblock");
var spn = $("span", this);
if (spn.text() == 'Open List') {
spn.text('Open List');
} else {
spn.text('Close List');
}
});
答案 3 :(得分:1)
稍微可读的选项:
$('.int-bank h2').toggle(function () {
$(this).find("span").text('Close List');
}, function () {
$(this).find("span").text('Open List');
});
答案 4 :(得分:1)
我不会改变文字。因为您已经在更改容器的CSS类...
相反,我会制作2个元素,每个文本(或任何你喜欢的HTML),并给每个元素一个CSS 类。
更改CSS,以便一次只能看到其中一个,具体取决于父级的CSS类。
例如使用“lblock-on”和“lblock-off”类:
<style type="text/css">
.lblock-on { display: none }
.lblock .lblock-off { display: none }
.lblock .lblock-on { display: block }
</style>
如果.lblock-on
元素是块元素;否则将“display: block
”更改为“display: inline
”。 (“display: inherit
”适用于Firefox,但不适用于MSIE。)
答案 5 :(得分:0)
<script>
$(document).ready(function(){
var text=$('.int-bank h2 span').text();
$(this).next("p").toggleClass("lblock");
if(text=="Open List")
$('.int-bank h2 span').text('Close List');
else
$('.int-bank h2 span').text('Open List');
})
这是一种方式.........