2011-12-23 34 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(); 
}