如何从label获取值并放入document.getElementById('label')。innerHTML

时间:2015-06-21 11:06:01

标签: javascript html asp.net google-maps

我已经复制了JavaScript谷歌地图,它工作得很完美,但我需要获得html控件的类型并将其设置为JavaScript。当我试图从lblTitle获取价值时,它不起作用。

    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>Google Maps Geocoding Demo 1</title>
    <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

    <script type="text/javascript">
//var address = 'Warsaw, PL'; Original var
                    var address = document.getElementById('lblTitle').innerText;
                    var map = new google.maps.Map(document.getElementById('map'), {
                        mapTypeId: google.maps.MapTypeId.TERRAIN,
                        zoom: 15
                    });

                    var geocoder = new google.maps.Geocoder();

                    geocoder.geocode({
                        'address': address
                    },
                    function (results, status) {
                        if (status == google.maps.GeocoderStatus.OK) {
                            new google.maps.Marker({
                                position: results[0].geometry.location,
                                map: map
                            });
                            map.setCenter(results[0].geometry.location);
                        }
                    });

                </script>

1 个答案:

答案 0 :(得分:1)

innerText是检索文本内容的方法之一,并且像所有浏览器都不支持的大多数方式一样。如果我是正确的,则Firefox中不支持innerText,因此如果您在Firefox中进行测试,则可能是您无法读取该值的原因。

你应该做的是使用JQuery的text()方法来获取值,因为它具有最大的跨浏览器支持,因此您不需要找出哪个浏览器使用哪个属性。所以在你的例子中:

var address = $("#lblTitle").text();

如果这仍然没有给你文字,那么检查你的浏览器中的html,看看id是否真的是lblTitle。如果你有一个类型为Label的服务器控件,ID为lblTitle,如下所示:

<asp:Label ID="lblTitle" runat="server" />

那么你的客户端id不会是lblTitle,但会有前缀。可以使用属性ClientID请求客户端上的实际ID。所以你在javascript中的行应该是:

var address = $("#<%= lblTitle.ClientID %>").text();