2012-04-08 4 views
0

Im Moment versuche ich, ein Element aus einer externen Website zu bekommen AJAX verwenden, so weit habe ich (hoffentlich) geschafft, die Seite zu bekommen:Wie bekomme ich unbenannte Elemente von einer externen Webseite mit AJAX?

var xmlhttp; 
var version; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    version=xmlhttp.innerHTML; 
    } 
    } 
xmlhttp.open("GET","http://www.minecraftwiki.net/wiki/Minecraft_Wiki",true); 
xmlhttp.send(); 

nun einen Weg finden, ich muss nur Gibt den Inhalt:

<dd> Current PC version: 
<b> 
<a href="/wiki/Version_history#1.2.5" title="Version history"> 
1.2.5 
</a> 
</b> 
</dd> 

ich habe den Quellcode der uRL überprüft und leider das Element I unbenannt werden soll (Hat kein id =“„), so ist es immer noch möglich, dies zu tun? Und wenn ja, wie? Danke

+1

Wie kann jemand sagen, wie man das Element auswählt, wenn wir nicht wissen, welches Element Sie auswählen möchten? –

+2

Haben Sie auch verifiziert, dass Sie sogar das Hauptelement der entfernten Seite erhalten können? Die meisten modernen Browser unterstützen keinen domainübergreifenden AJAX, was bedeutet, dass Sie Sicherheitsausnahmen erhalten. – jmort253

+0

@GGG Es ist die aktuelle PC Version in diesem Wiki, wenn du das meinst. http://www.minecraftwiki.net/wiki/Minecraft_Wiki Es ist jedoch nicht gekennzeichnet aber – Luke

Antwort

0

Zuerst machen Sie eine domainübergreifende Anfrage. Wenn Sie also keinen Browser verwenden, der domainübergreifendes AJAX zulässt, wird dies höchstwahrscheinlich nicht ohne einen serverseitigen Proxy funktionieren.

Um jedoch Ihre ursprüngliche Frage zu beantworten, benötigen Sie kein ID-Attribut, um auf ein Element zuzugreifen. Obwohl hilfreich, können Sie auf ein Element auf verschiedene Arten zugreifen.

Klasse Selektoren

var col = document.getElementsByClassName("the-class"); 

Dann Schleife durch die Sammlung, bis Sie das Element, das Sie wollen finden.

jQuery Selektoren:

jQuery Selectors ist vielleicht der einfachste Weg, DOM-Manipulationen zu handhaben und erhält Zugriff auf das Element sind Sie interessiert:

// example of an attribute selector: 

var exampleHTML = $('div[title="example"]).html(); 

Es gibt auch XPath, aber aus meiner Erfahrung jQuery CSS Selectors sind moderner, robuster und beschleunigen den Entwicklungsprozess.

Verwandte Themen