2011-12-23 38 views
3

嗨奇怪的問題,但我寫一些代碼,我希望把它清理乾淨...該代碼去如下...jQuery的創造元素名稱

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

我想是這樣

function (item) 
    var $div = div+item; 
    $($div).show() 

感謝

+0

什麼是'div1'?這是一個ID還是班級? 'div1'本身不匹配任何元素。 – Phil 2011-12-23 01:48:55

回答

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

假設你的意思#div + N,因爲div1是不是一個有效的選擇。但是,無論您的實際選擇器的前綴是什麼,邏輯都應該是相同的。

實施例:http://jsfiddle.net/XXSTy/

有關條件運算,check this MDN article信息。

+0

謝謝安德魯那非常有用! _happy_ _holidays_ – 2011-12-23 02:02:08

+0

@sausageRolls:沒問題,你也是! – 2011-12-23 02:02:48

0

你的代碼有幾個錯誤。

  • 第二if語句丟失)
  • 你正在努力尋找<div1>元素

沒有div1元素。如果你想引用元素ID,你必須使用「#」,因此它變成$('#idofthediv')

您的代碼有點混亂,不清楚您是否要搜索ID,元素名稱或混合。

如果你要搜索的ID divdiv1然後就重命名第一個id來div0和代碼將得到清潔(或更好div1div2):

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