我想我差不多了,但我对jQuery很新,必须忽略问题所在。
这是我的代码。
// <![CDATA[
var root = null;
$(document).ready( function(){
$.get( "/_assets/xml/sitemap.xml",
function( data ) {
root = data;
var pathname = window.location.pathname;
var local_url = "*[url=" + pathname + "]";
var currpage = $(root).find(local_url).attr("name");
var parentEls = $(root).find(local_url).parents();
var mapped = $(parentEls).map(function () {
var element = $(this).attr("name");
var element_url = $(this).attr("url");
var element_wrap = $(element).wrap('<a href=' + element_url + '/>');
return element_wrap;
})
.get()
.reverse()
.join(" / ");
$("#breadcrumb").append("<p>" + mapped + " / " + currpage + "</p>");
} );
} );
// ]]>
这是我遇到麻烦的地方:
var mapped = $(parentEls).map(function () {
var element = $(this).attr("name");
var element_url = $(this).attr("url");
var element_wrap = $(element).wrap('<a href=' + element_url + '/>');
return element_wrap;
})
我要做的是将每个元素包装在<a>
标记中并指定href = element_url。但我不断收到错误。谁能看到修复?谢谢!
答案 0 :(得分:2)
快速刺伤它:
var element_wrap = $(element).wrap('<a href="' + element_url + '" />');
更改是双引号 - 您正在生成这样的字符串:
<a href=http://somewhere.come />
但你想要
<a href="http://somewhere.come" />
答案 1 :(得分:0)
还有另一个问题:
var element = $(this).attr("name");
返回一个字符串,您尝试将其用作选择器... $(element)
。我猜它无法找到任何标签来包装。
根本不需要那条线。只需将$(element).wrap
替换为$(this).wrap