我创建了if else语句以反映适当的特定文本,我在这里设置了一个Jfiddle:http://jsfiddle.net/heykate/osvg4h33/
我想要完成的工作取决于用户是否已登录,文本将从登录或创建帐户(如果是欢迎来宾)更改,或者说注销(如果登录,即:欢迎朋友)。
HTML:
<div class="welcome"> Welcome Guest <span class="acctLink"> </span></div>
<div class="welcome"> Welcome Friend <span class="acctLink"> </span></div>
JQUERY:
if ($('.welcome:contains("Guest")').length > 0)
{
$("span.acctLink").html("Sign In Or Create An Account");
}
else
{
$('span.acctLink').html("Sign out");
}
在JSFiddle中,它正在验证脚本,但括号是&#39;在else语句周围突出显示为绿色。
跟进
感谢各位帮助,我能够让jquery按预期工作,以及我需要它如何工作。再次感谢所有的帮助,这是我的最终解决方案(可能是更好的方法 - 反馈总是受到欢迎):
HTML:
<div class="welcome">Welcome %%GLOBAL_CurrentCustomerFirstName%% (<span class="customerMenu"> </span>)</div>
JQUERY:
$('.welcome').each(function () {
if ($(this).is(':contains("Guest")')) {
$(this).find("span.customerMenu").html('<a href="/login.php">Sign In<a/> Or <a href="/login.php?action=create_account">Create An Account</a>');
} else {
$(this).find('span.customerMenu').html('<a href="/login.php?action=logout">Sign out</a>');
}
});
答案 0 :(得分:4)
试试这个:
$('.welcome').each(function(){
if ($(this).is(':contains("Guest")'))
{
$(this).find("span.acctLink").html("Sign In Or Create An Account");
}
else
{
$(this).find('span.acctLink').html("Sign out");
}
});
http://jsfiddle.net/osvg4h33/11/
你还没有jQuery
库包含
答案 1 :(得分:4)
我想你是这样看的:
$(".welcome").each(function () {
if ($(this).is(':contains("Guest")')) { //check if element with class welcome contains Guest text
$(this).children("span").html("Sign In Or Create An Account");//find span element and change the text
} else {
$(this).children("span").html("Sign out");//here change span text if div with class welcome doesn't contains Guest text
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="welcome">Welcome Guest <span class="acctLink"> </span>
</div>
<div class="welcome">Welcome Kate <span class="acctLink"> </span>
</div>
参考文献: