关于jQuery,我是一个完全新手,所以请耐心等待......
我有这个HTML
<ul class="zoneSubscriptions">
<li>
<ul>
<li class="zoneName"><a href="/Default.aspx?PageID=8267303">My Account</a></li>
<li>Never</li>
</ul>
</li>
<li>
<ul>
<li class="zoneName"><a href="/Default.aspx?PageID=8269026">Practitioners Area</a></li>
<li>Never</li>
</ul>
</li>
</ul>
如果存在Practitioners Area的链接,请将浏览器重定向到该href,否则,重定向到“我的帐户”部分。
这是我的jQuery ......
jQuery.noConflict();
jQuery(document).ready(function() {
if(jQuery(".zoneName a").text() == 'Practitioners Area'){
document.location.href = $(this).attr('href');
}else{
document.location.href = jQuery('.zoneName:first a').attr('href');
};
});
当它运行时,它只是将我重定向到我的帐户,即使Practioners Area存在。
我知道我可能正在做一些非常愚蠢的事......但任何人都可以帮助我并向我展示光明吗?非常感谢!谢谢!
答案 0 :(得分:1)
使用:
jQuery(document).ready(function() {
var isPractitionersAreaPresent=false;
jQuery(".zoneName a").text(function(i,v){
if(v == 'Practitioners Area'){
isPractitionersAreaPresent=true;
}
});
if(isPractitionersAreaPresent){
document.location.href = elem.attr('href');
}else{
document.location.href = jQuery('.zoneName:first a').attr('href');
}
});
jQuery(“。zoneName a”)。text()返回“.zoneName”中所有“a”元素的文本值
答案 1 :(得分:1)
将if
语句中的条件更改为:
$(".zoneName a:contains('Practitioners Area')").length
您尝试的问题是jQuery(".zoneName a").text()
将返回所有匹配元素的文本(在您的情况下,它会返回类似“我的AccountPractioners区域”的内容)。此版本检查是否存在包含字符串“Practioners Area”的任何匹配元素。这是完整的代码:
jQuery(document).ready(function() {
if($(".zoneName a:contains('Practitioners Area')").length) {
document.location.href = $(this).attr('href');
}else{
document.location.href = jQuery('.zoneName:first a').attr('href');
};
});