getElementById gibt null zurück, aber die Liste ist ausgefüllt. Irgendwelche Vermutungen darüber, was falsch ist?js geelementbyid gibt null zurück
homepage.aspx und Map.js
var Center = { lat: 20.452425, lng: -68.545446 };
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: Center
});
populateMap()
function populateMap()
{
var DiveSiteList2 = document.getElementById("DiveSiteList")
for (var i = 0; i < DiveSiteList2.options.length; ++i)
{...}
}
}
<div id="ListHolder">
<asp:ListBox class="ListBox" ID="DiveSiteList" runat="server"></asp:ListBox>
</div>
HomePage.aspx.cs
private DiveManager.DiveManager Manager;
protected void Page_Load(object sender, EventArgs e)
{
Manager = new DiveManager.DiveManager();
BindDiveList();
}
private void BindDiveList()
{
foreach (DiveSite DS in Manager.MasterDiveSiteList)
{
ListItem Item = new ListItem();
Item.Text = DS.DiveSiteName;
Item.Attributes.Add("Name", DS.DiveSiteName);
Item.Attributes.Add("Latitude", DS.Latitude.ToString());
Item.Attributes.Add("Longitude", DS.Longitude.ToString());
Item.Attributes.Add("ID", DS.DiveSiteID.ToString());
DiveSiteList.Items.Add(Item);
}
}
Seitenfehler: Uncaught Typeerror: kann Eigenschaft 'Optionen' von null lesen bei populateMap (Map.js: 19)
Es gibt wahrscheinlich kein Element, weshalb 'getElementById' gibt' null' (es nicht still). –
Ich bin kein ASP-Typ, aber Sie sollten ein asp.net oder asp.net-mvc-Tag hinzufügen. Aus einer naiven Lektüre ist nicht klar, dass die HTML-Seite tatsächlich irgendetwas mit der ID DiveSiteList enthalten würde, nur ein paar IDs, die auf der DS.DiveSiteID basieren. –
haben Sie versucht, ID statt ID (dh Kleinbuchstaben) zu verwenden. Auch ist Ihr JS in eine Onload-Wartezeit verpackt? Ähnlich verwenden Sie 'var DiveSiteList2', aber später' DiveSiteList' ... ist das ein Tippfehler? – haxxxton