2017-12-06 2 views
-3

Ich möchte Text in <div> oder Wert der DOM-Eigenschaft, der Wert ist 保卫科, , aber ich bekomme immer undefined oder JS-Fehler.Wie erhält man diesen Div-Text oder diesen DOM-Wert?

Ich bin neu in JS. Ich versuche ein paar Wege, um den Text eines Div zu bekommen, aber ich habe versagt. Ich brauche Hilfe.

Dieses HTML-Snippet ist ein Organigramm, und ich durchläuft es jetzt, um die Struktur zu erhalten und verkette die resultierenden Werte in ein JSON-Objekt, aber ich bin nicht vertraut mit der JS-DOM-Operation, die mich den ganzen Tag stört

function loop($chart) { 
 
     // var that = this; 
 
     //$chart是一个DOM 
 
     var $tr = $chart.find('tr:first'); 
 
     //找到根结点 获取id id为1 拼接json 
 
     // console.log($tr); 
 
     console.log($tr.find('.node:first').innerText); 
 
     var subObj = { 'id': $tr.find('.node')[0].id ,'name':$tr.find('.node')[0].value}; 
 
     //找到tr中的最后一个 记录子节点的tr 然后遍历 
 
     $tr.siblings(':last').children().each(
 
      function() { 
 
      //如果subObj没有子节点 则创建一个数组装子节点 
 
      if (!subObj.subordinate) { 
 
       subObj.subordinate = []; 
 
       } 
 
       //往数组中push东西 
 
      subObj.subordinate.push(loop($(this))); 
 
      }); 
 
     return subObj; 
 
     }
<div id="orgchart" class="orgchart view-state"> 
 
    <table> 
 
    <tr> 
 
     <td colspan="4"> 
 
     <div id="1512554614742741" value="保卫处" class="node"> 
 
      <div class="title"> 
 
      <i class="fa fa-th-large symbol"></i>保卫处</div> 
 
      <i class="edge verticalEdge bottomEdge fa"></i> 
 
     </div> 
 
     </td> 
 
    </tr> 
 
    <tr class="lines"> 
 
     <td colspan="4"> 
 
     <div class="downLine"></div> 
 
     </td> 
 
    </tr> 
 
    <tr class="lines"> 
 
     <td class="rightLine">&nbsp;</td> 
 
     <td class="leftLine topLine">&nbsp;</td> 
 
     <td class="rightLine topLine">&nbsp;</td> 
 
     <td class="leftLine">&nbsp;</td> 
 
    </tr> 
 
    <tr class="nodes"> 
 
     <td colspan="2"> 
 
     <table> 
 
      <tr> 
 
      <td colspan="2"> 
 
       <div id="1512554614755264" data-parent="1" value="2部门" class="node"> 
 
       <div class="title"> 
 
        <i class="fa fa-th-large symbol"></i>2部门</div> 
 
       <i class="edge verticalEdge topEdge fa"></i> 
 
       <i class="edge horizontalEdge rightEdge fa"></i> 
 
       <i class="edge horizontalEdge leftEdge fa"></i> 
 
       <i class="edge verticalEdge bottomEdge fa"></i> 
 
       </div> 
 
      </td> 
 
      </tr> 
 
      <tr class="lines"> 
 
      <td colspan="2"> 
 
       <div class="downLine"></div> 
 
      </td> 
 
      </tr> 
 
      <tr class="lines"> 
 
      <td class="rightLine">&nbsp;</td> 
 
      <td class="leftLine">&nbsp;</td> 
 
      </tr> 
 
      <tr class="nodes"> 
 
      <td colspan="2"> 
 
       <table> 
 
       <tr> 
 
        <td> 
 
        <div id="1512554614762739" data-parent="2" value="6部门" class="node"> 
 
         <div class="title">6部门</div> 
 
         <i class="edge verticalEdge topEdge fa"></i> 
 
        </div> 
 
        </td> 
 
       </tr> 
 
       </table> 
 
      </td> 
 
      </tr> 
 
     </table> 
 
     </td> 
 
     <td colspan="2"> 
 
     <table> 
 
      <tr> 
 
      <td> 
 
       <div id="1512554614773842" data-parent="1" value="4部门" class="node"> 
 
       <div class="title">4部门</div> 
 
       <i class="edge verticalEdge topEdge fa"></i> 
 
       <i class="edge horizontalEdge rightEdge fa"></i> 
 
       <i class="edge horizontalEdge leftEdge fa"></i> 
 
       </div> 
 
      </td> 
 
      </tr> 
 
     </table> 
 
     </td> 
 
    </tr> 
 
    </table> 
 
</div>

+2

Könnten Sie Ihren Code zeigen, bitte? – edkeveked

+2

Zeigen Sie etwas von Ihrer Mühe, wir helfen Ihnen von dort – Dean

+0

[Wie stelle ich eine gute Frage?] (Https://Stackoverflow.com/help/how-to-ask) –

Antwort

0

ich es versucht, es funktioniert:

function myFunction() { 
    var x = document.getElementById("1512554614742741").getAttributeNode("value").value; 
    //here you have 保卫科 in x variable but it doesn't show anywhere on the page 
    //you choose what you want to do with it for example show it in the html page 
} 
+0

vielen Dank –

+0

Kein Problem! :) Können Sie meine Antwort bitte markieren? – MMHarbaz

+0

mein Ruf nicht genug, sorry –