选择所有可见id为超链接的超链接

3

我的页面里有很多这样的超链接。其中一些是可见的,而另一些则是隐藏的。

 <a class="close-reveal-modal" id="close_car2">&#215;</a>
 <a class="close-reveal-modal" id="close_car3">&#215;</a>
 <a class="close-reveal-modal" id="close_car4" style="display:none;" >&#215;</a>

现在我想要迭代所有ID以"close_"开头的可见超链接,并获取索引,为超链接分配独特的文本。

这是我的代码示例,但它没有起作用。

$("a[id^='close_']").is(':visible').each(function (index) {
        if(index=='0')
        {
            $(this).text('test');
        }
    }); 

如何解决这个问题?谢谢。

你正在使用 each 但是又检查 index==0。难道你不能只用 $(...)[0] 来选择第一个元素吗? - James
2个回答

2

尝试:

$("a[id^='close_']:visible").each(function (index) {

从 "is()" 的文档中:

与其他过滤方法不同,.is() 不会创建新的 jQuery 对象。相反,它允许你在不修改 jQuery 对象的情况下测试其内容。


1

这样做可以正常工作

$('a[id*="close_"]').each(function(i){
    if($(this).is(':visible')){
        if(i == 0){
            $(this).text('Link One');
        }
        if(i == 1){
             $(this).text('Link Two');
        }        
    }    
});

示例:http://jsfiddle.net/xC4Fp/1


如果前两个链接不是“可见”的,则不会发出警报。 - sberry
@d3v3us。你是对的。但是 OP 想要获取索引,将唯一的文本分配给超链接。所以如果他想要分配独特的内容,他需要知道顺序。或者他必须展示更多的代码来进行更优雅的修复。但是,是的,就提供的代码而言...它可以工作。 - Jason Gennaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接