2017-10-13 136 views
0

我有一个脚本,在一个特定的div点击(比如:id = packtoa)将(其中包括).addclass(“秀”)与一类列表视图项,其中div的ID一致点击。插入DIV ID为脚本

伟大的工程,但我会想下一个DIV(ID = packfhag)做同样的事情,然后下一个。所以,我得到了相同的脚本多次在我的JS只用ID &类名称更改。

我敢肯定,有一个愚蠢的显而易见的方式来自动化这个,所以任何带有以“pack”开头的id的div都会触发这个脚本,拉出div id,并将其插入脚本中的类名叫做。

而且我敢肯定,我很接近,试图适应这个脚本:

$("div[id^=pack]").each(function() { 
    var match = this.id.match(/\w+$/)[0]; 
    $(this).addClass('show'); 
}); 

但我就是无法破解它。要么是上面的错误,要么我将它插入脚本中的错误位置:

// Tears of Ameratsu menu functions 
    $(document).bind('pageinit', function() { 
// When link is clicked 
    $('#packtoa').click(function() { 
// collapse the expansions menu 
    $("#expansionsmenu").click(); 
// hide everything except this expansion 
    $(".hidden").removeClass('show'); 
    $(".packtoa").addClass('show'); 
// clear the search, and trigger a blank search 
    $('input[data-type="search"]').val(''); 
    $('input[data-type="search"]').trigger("keyup"); 
    }); 
}); 

我在想什么?

+0

为什么不对clas进行点击操作而不是一个ID,那么每个新创建的div都有相同的类? – user101289

回答

0
// for selecting div which starts with pack 
// not recommended 
$("div[id^='pack']"); 

的最佳选择是使用class属性,类属性添加到所有这些div,然后

$('.commonClass').addClass('show'); 

例如:

// this is for testing 
 
// say you click 
 
$('#test').on('click',function(){ 
 
    $('.testclass').addClass('show'); 
 
});
.testclass{ 
 
display:none; 
 
} 
 
.show { 
 
    display:block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="testclass">div1</div> 
 
<div class="testclass">div2</div> 
 
<div class="testclass">div3</div> 
 

 
<input type='button' value='Click me to view div' id='test' />

+0

答案我有点困惑。它看起来像你的代码和我的一样,点击id:test,它会影响class:testclass。但是当你需要做同样的一组不同的ID /类的,你会不会需要键入相同的脚本,但与测试1/testclass1,然后用TEST3等等等等 –

+0

多类再次键入您可以选择这样的:'$( 'class1的,.class2,.class3 ')' –

+0

如果我运行$(测试')..到addclass( '秀')到$(' class1的,.class2等),那么#test会为它们添加'show'。而我需要#test1将添加到.test1,#test2添加到.test2等 –