Jquery 测试tab的存在性
我正在测试jQuery中是否存在动态选项卡。如果存在,请选择它;如果不存在,请创建它 这在FF、Chrome等中100%有效。我是jQuery新手,所以我正在努力使这款IE8+兼容Jquery 测试tab的存在性,jquery,Jquery,我正在测试jQuery中是否存在动态选项卡。如果存在,请选择它;如果不存在,请创建它 这在FF、Chrome等中100%有效。我是jQuery新手,所以我正在努力使这款IE8+兼容 // Does the tab already exist? var checkName = satrk; var tabExists = false; $('#tabs ul li a').each(function(i) { if(this.text == chec
// Does the tab already exist?
var checkName = satrk;
var tabExists = false;
$('#tabs ul li a').each(function(i) {
if(this.text == checkName) {
tabExists = true;
}
});
// React to existance:
if(!tabExists){
$("#tabs").tabs("add","details.cfm?satrk="+satrk,satrk);
$("#tabs").tabs("select", satrk); // select tab by index
}else{
$("#tabs").tabs("select", satrk); // select tab by index
}
我将制表符索引传递给支票
建议
我在别处读到“a元素在IE中没有文本属性”,但这还不足以纠正我的问题。试试:
if($(this).text() == checkName) {
我认为在您的使用中,
this.text
是DOM对象的text
属性。如果在jQuery($(this)
)中包装该DOM对象,那么它应该有一个.text()
方法,该方法将允许jQuery对跨浏览器内容进行排序,并只返回所需的文本。我可能应该添加,在FF中,它知道索引存在并选择现有选项卡,在IE中,is无法匹配,并且每次都会在那里打开一个新选项卡。您可以改为使用:this.innerText
:如果(this.text==checkName | | this.innerText==checkName)
(但是既然您有了jQuery:$(this.text())
肯定会涵盖所有情况吗?嗯,我很高兴说工作,但也很沮丧。在我看到“a元素在IE中没有文本属性”的地方也给出了同样的建议我试过了,但没有成功。所以,要么我输入错误,没有看到它,要么可能是缓存问题。但这次,它按预期工作。谢谢!很抱歉,我问了一个已经回答的问题。