2017-10-15 46 views
0

可以在For循環中添加幾個ID的getElementById? 但首先你有querySelectorAll來列出已經出現的ID。在For循環中添加幾個ID的getElementById

功能,如果它存在,將返回格式化的信息:

function show_info(real_info, otp_inf) { 
    if(real_info.indexOf('already exists') > -1) { 
     var sinf = real_info.split("File '"+dir_files).pop(); 
     var sinf = sinf.split(' Overwrite').shift(); 
     $('#otp_'+otp_inf).html('<br><i><b class="rev-dev" style="font-size:14px">Not Encoded</b><br /><b>File \''+ sinf +'</b></i>'); 
    } 
} 

這裏有一個問題,如果我把的getElementById內部For循環不起作用:

var allids = document.querySelectorAll("#all_log div"); // To list all the IDs that have appeared 
for (var i = 0; i < allids.length; i++) { 
    if(allids[i].id.indexOf('bd_') > -1) { // Filter all IDs that start with... 
     var idinfo = allids[i].id.split('bd_').pop(); // Show only the unknown name of the ID that will show the final text ...... 
     var id_info = document.getElementById(allids[i].id); // this line is not working 
     show_info(id_info, idinfo); 
    } 
} 

這將是編號:

<div id="all_log"> 
    <?php 
     echo '<div class="hide_log" id="bd_'.md5(current($files)).'">'; //ID with the original text 
     execOutput($cmd); 
     echo '</div>'; 
     echo '<div id="otp_'.md5(current($files)).'"></div>'; //ID with part of text 
    ?> 
</div> 
+0

理論上'md5(current($ files))'可能返回兩個單獨文本完全相同的字符串。 – Xufox

+0

@ guest271314這個'#all_log是ID'div'filtro,不是id。 – jmsmarcelo

+0

@jmsmarcelo如果預期結果是所有具有以''bd_「開頭的'id'的元素,您可以使用'document.querySelectorAll(」#all_log div [id^='bd _']「);' – guest271314

回答

0

就行而言,目標是收集ID中html的文本,所以它出錯了:

var id_info = document.getElementById(allids[i].id); // wrong 

var id_info = $('#'+allids[i].id).html(); //correct