2013-04-26 4 views
0

getElementByID를 사용하지 않고 div의 innerHTML을 가져 오려면 (이 웹 사이트에는 'quote'를 id로 사용하는 여러 div가 포함되어 있음을 고려해야하지만 'field name'(field = "bid"). 어떻게 그럴 수 있니?div의 내부 HTML

<div nowrap="nowrap" id="quote" class="realtimeDetailLayer" source="lightstreamer" 
style="display:inline" table="LS_ProductDetails_TabID" item="X0000010600NL0010379129" 
field="bid">0,28</div> 

기존 웹 사이트에서 정보를 검색하고 싶습니다. 아래를보십시오. 여러 개의 div가 동일한 ID를 가지고 있음을 알 수 있습니다.

<tbody> 
    <tr> 
    <td style="text-align:right;width:auto;padding:8px 0px;"><nobr>Ref.</nobr>:</td> 
    <td class="ext04" style="white-space:nowrap;width:12%;font-weight:bold;"> 
    EUR 
     <strong><div nowrap=nowrap id="quote" class="realtimeDetailLayer" source="lightstreamer" style="display:inline" table="LS_ProductDetails_TabID" item="X0000010600NL0010379129" field="reference">350,85 
     </div></strong> 
    </td> 
    <td style="text-align:right;width:auto;padding:8px 0px;"><nobr>Bied</nobr>:</td> 
    <td class="ext04" style="white-space:nowrap;width:12%;font-weight:bold;"> 
    EUR 
     <div nowrap=nowrap id="quote" class="realtimeDetailLayer" source="lightstreamer" style="display:inline" table="LS_ProductDetails_TabID" item="X0000010600NL0010379129" field="bid">0,28</div> 
    </td> 
    <td style="text-align:right;width:auto;padding:8px 0px;"> 
     <nobr>Laat</nobr>: 
    </td> 
    <td class="ext04" style="white-space:nowrap;width:12%;font-weight:bold;"> 
    EUR 
     <div nowrap=nowrap id="quote" class="realtimeDetailLayer" source="lightstreamer" style="display:inline" table="LS_ProductDetails_TabID" item="X0000010600NL0010379129" field="ask">0,29 
     </div> 
    </td> 
    <td style="text-align:right;width:auto;padding:8px 0px;"><nobr>%</nobr>:</td> 
    <td class="ext04" style="white-space:nowrap;width:12%;font-weight:bold;"> 
     <div nowrap=nowrap id="quote" class="realtimeDetailLayer" source="lightstreamerGeneratedValues" style="display:inline" table="LS_ProductDetails_TabID" item="X0000010600NL0010379129" field="midchangepercent"><span class="extNegative"><nobr>-50,88 %</nobr></span> 
     </div> 
    </td> 
    </tr> 
</tbody> 
+12

ID는 에서 독특한 – Pete

+0

살펴해야http://stackoverflow.com/questions/9496427/how-to-get-elements-by-attribute-selector-w-native-javascript-wo-queryselector –

+2

@Shiju 당신은 * 페이지에 같은 ID를 가질 수 있습니다. , 그러나 당신은 * 그렇게해서는 안됩니다 *. – RemarkLima

답변

0

parent 및 children 요소를 가져 오는 것으로 DOM을 파싱하면됩니다.

0

는 다음과 같은 시도 :

els = document.getElementsByTagName('div'); 
for (i=0; i<els.length; i++) { 
    if (els[i].field == 'bid') { 
    //do whatever with the bid element here. 
    } 
} 

이 모든 divs을하고 확인하는 field 속성을 가져옵니다.

0

이 솔루션은 요소

에 대한 고유 ID를 가질 수있는 방법이없는 최악의 시나리오입니다
var divs = document.getElementsByTagName('div'); 
function getQuoteHtml(key){ 
    var i; 
    for(i =0 ; i < divs.length; i++){ 
     if(divs[i].getAttribute('field') == key){ 
      return divs[i].innerHTML; 
     } 
    } 
} 

데모 : Fiddle

0

당신은 그렇게 할 수있는 CSS 선택기를 사용할 수 있습니다

document.querySelectorAll('[field="bid"]'); 
관련 문제