2017-05-18 2 views
0

Wie greife ich auf ein Element in der header.html Datei, in dem JavaScript-Code geladen,document.getElementById("element") innerhalb des index.js mit? Es gibt eine andere Möglichkeit, von der index.js Datei darauf zuzugreifen?Wie greife ich auf ein HTLM-Element zu, das mit einer JQuery-Funktion geladen wurde?

Datei index.html

<html> 
<head> 
    <meta charset="utf-8"> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
    <link rel="stylesheet" type="text/css" href="css/style.css"/> 
    <script src="js/jquery.js" type="text/javascript"></script> 
    <script> 
     $(function(){ 
      $("#header").load("header.html"); 
      $("#footer").load("footer.html"); 
     }); 
    </script> 
    <script src="https://www.gstatic.com/firebasejs/3.9.0/firebase.js"></script> 
    <script src="js/app.js" type="text/javascript" language="javascript"></script> 
    <script src="js/index.js" type="text/javascript" language="javascript" defer></script> 
</head> 
</html> 
+0

Sie würden kein '#' Symbol in Ihren ID-Selektor setzen, wenn Sie 'getElementById' verwenden, also könnte es einfach funktionieren, es zu entfernen. Da Sie jQuery trotzdem verwenden, können Sie auf die Elemente wie '$ ('# header.element')' 'zugreifen, zB wenn ein Element, das in den Header geladen wird, die Klasse' element' hat. –

+0

Nicht sicher, ob Sie jQuery oder JavaScript verwenden möchten. Wenn Sie jQuery verwenden wollen, ist das wie folgt: '$ ('# someelement'). load ('header.html #header')'. –

+0

Ich versuche, eine Referenz des Objekts zu bekommen, um es mit einem ** onclick ** zu verwenden. – IronBoy

Antwort

0

mir Klingt wie Sie müssten warten, bis $("#header").load("header.html"); bevor Sie versuchen, etwas mit dem geladenen zu tun getan wird Inhalt. Vielleicht $("#header").load("header.html", onHeaderLoaded); arbeiten (vorausgesetzt, Sie haben eine Funktion onHeaderLoaded definiert irgendwo genannt, möglicherweise sogar in index.js)

jQuery .load() für Details auf die komplette Funktion.

+0

Vielen Dank! Es funktionierte! :) – IronBoy

0

Versuchen Sie, diese mit JQuery:

$.get('header.html', null, function(content){ 
    alert($(content).find('#element')); 
}); 
0

Sie benötigen header.html in ein vorhandenes Element in Ihre Seite zu laden, und dann können Sie mit JQuery:

$("#existing-element").on("click", "element-from-header-file", function() { 
    //do stuff 
}); 

Oder Sie können Körper stattdessen verwenden, wenn Sie nicht wollen, zu/kann nicht Ihre Header in ein vorhandenes Element laden:

$("body").on("click", "element-from-header-file", function() { 
    //do stuff 
}); 

Sie können this lesen möchten.

Verwandte Themen