使用jQuery将String转换为Anchor

时间:2011-09-11 10:18:03

标签: javascript google-maps-api-3 anchor

下面代码的第二部分会监听点击Google地图标记的时间,并将网址添加到地址栏。如何让它在网址周围包裹传统的锚标签?例如< a href ='#test2'>< / A>

        markers[1] = new google.maps.Marker({
            position: sainsburys,
            url: '#test2',
            title: 'Sainsburys',
            map: map
        });


        for ( i = 0; i < markers.length; i++ ) {
            google.maps.event.addListener(markers[i], 'click', function() {
            window.location.href = this.url;
            });
        }

完整示例在这里http://jsfiddle.net/BQzLq/8/,虽然你看不到它正常工作,因为JSFiddle不允许修改URL。

3 个答案:

答案 0 :(得分:1)

您可以操纵window.location.hash属性。直接操作此操作不会导致浏览器滚动,但如果您再调用$.localScroll.hash(),则可能会按照您的意愿运行。

window.location

答案 1 :(得分:0)

此方法使用临时<div>innerHTML,但如果您愿意,可以使用DOM调用完全创建A元素。

// create anchor
var anchorHtml = "<a href='" + this.url + "'>ANCHOR TEXT</a>";
var tempDiv = document.createElement("div");
tempDiv.innerHTML = anchorHtml;
var anchor = tempDiv.getElementsByTagName("a")[0];

// use anchor
document.body.appendChild(anchor);

答案 2 :(得分:0)

您可以在地图下方添加div:

    <div id="linkArea">
    </div>

然后你可以将你的锚点注入:

    var anchor = '<a href="' + this.url + '">' + this.title + '</a><br/>';
    $('#linkArea').append(anchor);

结果是你应该看到你的锚点出现在你找到div的地方。