Javascript 使用Jquery更改文本字符串
我试图在使用Jquery单击链接时更改/还原文本字符串。现在,这段代码的第一条语句可以正常工作,但另一条语句不行。有人能帮我找出这里出了什么问题吗Javascript 使用Jquery更改文本字符串,javascript,jquery,Javascript,Jquery,我试图在使用Jquery单击链接时更改/还原文本字符串。现在,这段代码的第一条语句可以正常工作,但另一条语句不行。有人能帮我找出这里出了什么问题吗 <script> $("document").ready(function(e) { $("#newMessagelink").click(function(e) { $("#new-msg").toggle(); if($("#newMessagelink").text("New Message")
<script>
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
if($("#newMessagelink").text("New Message") {
$("#newMessagelink").text("Back to Inbox");
} else if($("#newMessagelink").text("Back to Inbox")) {
$("#newMessagelink").text("New Message");
}
})
});
</script>
$(“文件”)。就绪(功能(e){
$(“#newMessagelink”)。单击(函数(e){
$(“#新消息”).toggle();
如果($(“#新消息链接”).text(“新消息”){
$(“#newMessagelink”).text(“返回收件箱”);
}else if($(“#newMessagelink”).text(“返回收件箱”)){
$(“#newMessagelink”).text(“新消息”);
}
})
});
谢谢!您的
if
语句将始终为真,因为始终返回jQuery对象。相反,您可以使用做一些简单的事情。您也可以使用此而不是\newMessagelink
选择器,因为在单击处理程序中此指的是\newMessagelink>代码>
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
$(this).text(function(i, text) {
return text == "Back to Inbox" ? "New Message" : "Back to Inbox";
});
})
});
使用您自己的代码正确更改if条件
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
var text= $(this).text();
if(text=="New Message") {
$(this).text("Back to Inbox");
} else if(text=="Back to Inbox") {
$(this).text("New Message");
}
})
});
您的if
语句将始终为true,因为始终返回jQuery对象。相反,您可以使用执行一些简单的操作。您也可以使用此而不是\newMessagelink
选择器,因为在单击处理程序中,此指的是\newMessagelink
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
$(this).text(function(i, text) {
return text == "Back to Inbox" ? "New Message" : "Back to Inbox";
});
})
});
使用您自己的代码正确更改if条件
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
var text= $(this).text();
if(text=="New Message") {
$(this).text("Back to Inbox");
} else if(text=="Back to Inbox") {
$(this).text("New Message");
}
})
});
尽量使用得当,
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
var txt = $(this).text();
$(this).text(txt == "New Message" ? "Back to Inbox" : "New Message");
});
});
.text(“something”)
将返回一个jquery包装对象
。如果在If语句中传递它
,那么它的计算结果总是true
。因此,获取目标元素的文本并正确检查它
此外,您还存在一些语法错误,如未关闭打开的括号等。在将问题提请他人注意之前,最好先查看一下您的控制台
尽量使用得当,
$("document").ready(function(e) {
$("#newMessagelink").click(function(e) {
$("#new-msg").toggle();
var txt = $(this).text();
$(this).text(txt == "New Message" ? "Back to Inbox" : "New Message");
});
});
.text(“something”)
将返回一个jquery包装对象
。如果在If语句中传递它
,那么它的计算结果总是true
。因此,获取目标元素的文本并正确检查它
此外,您还存在一些语法错误,如未关闭打开的括号等。在将问题提请他人注意之前,最好先查看一下您的控制台
$(“#newMessagelink”).text(“新消息”)应该做什么?如果你想检查#newMessagelink有文本“新消息”,你应该使用$(“#newMessagelink”).text()=”newmessage“$(“#newMessagelink”).text(“新消息”)应该做什么?如果你想检查#newMessagelink有文本“新消息”,你应该使用$(“#newMessagelink”).text()==”newmessage“所以我尝试了你的代码,使用此代码的想法是让链接默认显示“newmessage”文本。单击后,它应该显示“返回收件箱”。然后当“返回收件箱”时"单击后,它会返回到新消息。@user3772369是的。这正是您想要的。对吗?是的,但是对于您的代码,当我实现它时,由于某种原因,它在第一次单击时不起作用。它在第二次单击并继续单击时起作用。@user3772369在某种意义上不起作用?您能详细说明吗?当然,因此,当我运行应用程序时默认情况下,当我单击时,文本显示“New Message”,它隐藏了我想要的一些内容,但不会将文本更改为“Back to Inbox”。此时,文本仍然是“New Message”。但是,当我再次单击时,它会取消隐藏我想要的div,并将文本更改为“Back to Inbox”。因此,我尝试了您的代码,使用此代码背后的想法是在默认情况下为链接显示“新邮件”文本。单击后,它应显示“返回收件箱”。然后当“返回收件箱”单击后,它会返回到新消息。@user3772369是的。这正是您想要的。对吗?是的,但是对于您的代码,当我实现它时,由于某种原因,它在第一次单击时不起作用。它在第二次单击并继续单击时起作用。@user3772369在某种意义上不起作用?您能详细说明吗?当然,因此,当我运行应用程序时默认情况下,当我点击时,文本显示“New Message”,它隐藏了我想要的一些内容,但没有将文本更改为“Back to Inbox”。此时,文本仍然是“New Message”。但是,当我再次单击时,它会取消隐藏我想要的div,并将文本更改为“Back to Inbox”。