簡體   English   中英

帶有getElementsByTagName的嵌套標簽名稱不起作用

[英]Nested tag name with getElementsByTagName doesn't work

我有以下div,其中包含該表及其從數據庫中查詢的數據

<div id="content">
<table>
<tbody>
   <tr>
       <th class="header" colspan="2">Food items include:</th>
   </tr>
   <tr>
      <td id="15" class="fruits">Papaya+salt</td>
      <td><p>This includes papaya and salt</p></td>
   </tr>
   <tr>
      <td class="meat">Baked chicken</td>
      <td><p>This includes a chicken thide and kethup</p></td>
   </tr>
   <tr>
      <td id="1" class="Juices">Strawberry Sting</td>
      <td><p>Sugar, color and water</p></td>
   </tr>
<table>
</div>

該表在page.aspx中定義

這是我的代碼,用於按字母順序對表格數據進行排序

OldFunc = window.onload;
window.onload = OnLoad;

function OnLoad(){
    try{
        var pathName = window.location.pathname.toLowerCase();
        if( pathName=="/Resources/Glossary.aspx") {
                sort_it();
            }   
        OldFunc();
    }
    catch(e) {
    }
} 

function TermDefinition(def_term,def_desc)
{    
    this.def_term=def_term;  
    this.def_desc=def_desc; 
}    

function sort_it()
{
    var gloss_list=document.getElementsByTagName('td');    
    var desc_list=document.getElementsByTagName('td p');    
    var gloss_defs=[];   
    var list_length=gloss_list.length;     
    for(var i=0;i<list_length;i++)    
    {      
       gloss_defs[i]=new TermDefinition(gloss_list[i].firstChild.nodeValue,desc_list[i].firstChild.nodeValue);      
    }     
    gloss_defs.sort(function(a, b){
      var termA=a.def_term.toLocaleUpperCase(); 
      var termB=b.def_term.toLocaleUpperCase();
      if (termA < termB) 
       return -1;
      if (termA > termB)
       return 1;
      return 0; 
    })    
    for(var i=0;i<gloss_defs.length;i++)
    {
       gloss_list[i].firstChild.nodeValue=gloss_defs[i].def_term;
       desc_list[i].firstChild.nodeValue=gloss_defs[i].def_desc;  
    }
}

請查看兩個getElementsByTagName,我認為我在濫用其內容,因為在輸出中什么也沒做。

無效

desc_list=document.getElementsByTagName('td p');

您不能將css選擇器傳遞給該函數,只能傳遞div \\ span input等標記名。

您可能要使用:

desc_list = $('td p');

由於您使用jQuery或document.querySelectorAll為香草js標記了問題,因此:

desc_list = document.querySelectorAll('td p');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM