通过jquery动态隐藏id

时间:2015-07-08 21:50:44

标签: javascript jquery

我有三个3个div

<div id= "product_1"></div>
<div id= "product_2"></div>
<div id= "product_3"></div>
<div id= "product_4"></div>
<div id= "product_5"></div>

我正在动态更改ID

var hotelCode = "CUNMXHIDD,CUNMXMAYA,CUNMXDSAN"
var splittedHotelCode = hotelCode.toString().split(',');
jQuery.each(splittedHotelCode, function(i, hotelCode) {
 $("#product_"+ i).attr("id","product_"+ hotelCode);
});

在此之后我想隐藏未编入索引的div_ product_4和product_5

现在DOM

<div id= "product_CUNMXHIDD"></div>
<div id= "product_CUNMXMAYA"></div>
<div id= "product_CUNMXDSAN"></div>
<div id= "product_4"></div>
<div id= "product_5"></div>

我不想硬编码。我有可能通过Jquery隐藏它们吗?

2 个答案:

答案 0 :(得分:1)

您可以使用数组的lengthslice方法。

$('div[id^=product]').slice(splittedHotelCode.length).hide();

答案 1 :(得分:0)

  1. 跟踪索引以保留最后一个索引
  2. 使用:gt()选择然后隐藏所有ID为以产品_
  3. 开头的元素
    var hotelCode = CUNMXHIDD,CUNMXMAYA,CUNMXDSAN
    var splittedHotelCode = hotelCode.toString().split(',');
    var lastIndex = 0;
    jQuery.each(splittedHotelCode, function(i, hotelCode) {
     $("#product_"+ i).attr("id","product_"+ hotelCode);
     lastIndex = i;
    });
    
    $('[id^="product_"]:gt('+lastIndex+')').hide();