Jquery 测试tab的存在性

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

我正在测试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 == 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中没有文本属性”的地方也给出了同样的建议我试过了,但没有成功。所以,要么我输入错误,没有看到它,要么可能是缓存问题。但这次,它按预期工作。谢谢!很抱歉,我问了一个已经回答的问题。