2011-12-30 3 views
3

私のページにはこのハイパーリンクがたくさんあります。それらのいくつかは目に見え、いくつかは隠されています。表示されているIDを持つすべてのハイパーリンクを選択してください

<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'); 
     } 
    }); 

これを解決するにはどうすればよいですか?おかげ

+0

あなたは 'each'が、その後== '0'のインデックスをチェックを使用しています。 '$(...)[0]'で最初の要素を選択できませんでしたか? – James

答えて

2

は試してみてください。 "である()" のドキュメントから

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

他のフィルタリング方法とは異なり、.is()は新しいjQueryの オブジェクトを作成できません。代わりに、変更なしでjQueryオブジェクト の内容をテストすることができます。

+0

+1、[作業中](http://jsfiddle.net/wuvx2/1/) – Clive

+0

ありがとうございます – cyberfly

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

+0

最初の2つのリンクが「可視」でない場合、警告は表示されません。 – sberry

+0

@ d3v3us。あなたが正しい。しかし、OPは*インデックスを取得し、ハイパーリンクに一意のテキストを割り当てる*。だから、彼は独特のものを割り当てたいなら、ここで順序を知る必要がある。あるいは、彼はよりエレガントな修正のためのより多くのコードを表示しなければならない。しかし、そうです、それは提供されたコードで動作します。 –

+0

あなたの答えは私のコードに適用するためにいくつかのアイデアを与えてくれます – cyberfly

関連する問題