下面的腳本能很好地兩截斷的鏈接,並添加一個圖標類,但是, 這是太慢:使用的document.ready舉行代碼從執行UNTIL加載頁面上的所有元素。運行jQuery來更快地應用到每一個元素沒有冗餘
我刪除它,和它的作品,但它不會最後一個元素
<script>
jQuery.noConflict();
jQuery(".resultAction").each(function(){
var fileName = jQuery(this).find('a').html()
var fileExtension = fileName.substring(fileName.lastIndexOf('.'));
var nameChars= fileName.length;
var shorter=fileName.substring(0,10)+"...";
//apply style to relative to file extension
if(fileExtension=="jpg"||"pdf"||"mov"){
jQuery(this).find("#indicator").addClass("is" + fileExtension.slice(1));
}
//no file extension hide the icon div "indicator"
if((fileExtension.indexOf('.') == -1)){
jQuery(this).find("#indicator").addClass("not");
}
//truncate text
if(nameChars>10){
jQuery(this).find('a').text(shorter);
}
});
</script>
所以我擺脫以上。就緒的工作和重新加入這個:
<script>
jQuery(document).ready(function(){
jQuery.noConflict();
jQuery(".resultAction:last").each(function(){
//-SAME CODE ABOVE-....
</script>
- 注意:最後 - 當然工作 - 但它是多餘的,我想知道是否有一個更有效的方式來使這個代碼運行立即(作爲頁面加載每個元素)和完全代替運行兩個相同的腳本一個運行速度快,另一個運用到最後一個項目上。
請向我們展示相關的HTML。 – jfriend00
我不認爲這會導致它運行緩慢;但是,您似乎在使用類resultAction在每個元素中搜索具有指示符id的元素。這不應該是這樣,因爲id應該是獨一無二的。您很可能需要將其更改爲一個班級。 –