2011-12-23 15 views
3

ちょっと変な質問が、私はいくつかのコードを書いていますし、私はそれをきれいにしたい...次のようにコードが行く...jQueryの作成要素名

function (item){ 
    if(item == "1") 
     $('div').show(); 
    if(item == "2" 
     $('div1').show(); 
} 

私は

function (item) 
    var $div = div+item; 
    $($div).show() 
のようなものを試してみました div1が有効なセレクタではありませんので、あなたは、 #div + Nを意味すると仮定すると、

おかげ

+0

'div1'は何ですか?それはIDかクラスですか? 'div1'はそれ自身では要素にマッチしません。 – Phil

答えて

5
function (item){ 
    $("#div" + (item > 1 ? (item - 1) : "")).show(); 
} 

。ただし、実際のセレクタの接頭辞が何であっても、ロジックは同じである必要があります。

例:条件演算子、check this MDN articleについてはhttp://jsfiddle.net/XXSTy/

+0

ありがとうアンドリューそれは非常に便利だった! _happy_ _holidays_ –

+0

@sausageRolls:問題ありません、あなたも! –

0

コードにいくつかの誤りがあります。

  • 第二if文は、<div1>要素

なしdiv1要素がありますを見つけようとしている)

  • が不足しています。要素IDを参照する場合は、「#」を使用して$('#idofthediv')にする必要があります。

    コードはちょっと混乱しています.ID、要素名を検索するか、混在しているかどうかは不明です。

    あなたはIDがdivdiv1を検索したい場合は、単にdiv0に第一のIDの名前を変更し、コードがきれい(またはより良いdiv1div2)を取得します:

    function (item) { 
        $("#div" + (item - 1)).show(); 
    } 
    
  • 関連する問題