asp.net如何从标签中获取值并放在 document.getElementById('label').innerHTML

发布时间: 2017/3/26 3:53:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我抄了 JavaScript Google Maps和它很完美,但我需要得到的 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:

innerText 是如何检索文本内容和最喜欢的它并不所有浏览器支持的方法之一。如果我是正确的 innerText 不支持在火狐浏览器,所以如果你正在测试在火狐浏览器,可能的原因,为什么你不能读取的值。

你应该做的是使用 JQuery 的 text () 方法来获取值,因为这有最大的跨浏览器支持,所以你不需要再找出哪一个浏览器使用哪些属性。所以在您的示例︰

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

如果这还不给你的文本,然后检查您在您的浏览器,看看 id 是否实际上 lblTitle 的 html。如果您有服务器类型的控件,标签与 ID lblTitle 像这样︰

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

然后您的客户端 id 不会 lblTitle,但它将前缀。在客户端上的实际 id 可以通过使用 ClientID 属性要求。所以你在 javascript 中的行应为︰

var address = $("#<%= lblTitle.ClientID %>").text();
官方微信
官方QQ群
31647020