Javascript开发人员,
我有这个脚本,我在我的模板中动态显示html:
$(document).ready(function() {
var credits= $('body').append('<div id="wrap"><div id="wrapp-inner"><div id="wrapleft"></div><div id="wrapright">Designed Templatezy</div></div></div>');
});
现在我想将<a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a>
添加到该垃圾邮件div中,但它不能显示博客标题,也不会添加网站的网址。
提示:这是博客模板中的<a expr:href='data:blog.homepageUrl'>
html / expression标记,可为您的网站主页创建链接。例如http://example.com,其中<data:blog.title/>
是一个标记,显示您的博客标题,如“Stack Overflow”。它很容易添加到模板中,但我发现在将其添加到该追加脚本时很难。
我尝试过以下但不起作用:
$(document).ready(function() {
var credits= $('body').append('<div id="wrap"><div id="wrapp-inner"><div id="wrapleft"><a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a></div><div id="wrapright">Designed Templatezy</div></div></div>');
});
所以请任何人帮我在该追加脚本中的wrapleft div之后添加此<a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a>
。感谢。
$(document).ready(function() {
var credits= $('body').append('<div id="wrap"><div id="wrapp-inner"><div id="wrapleft"><a href="stackoverflow.com">stackoverflow</a></div><div id="wrapright">Designed Templatezy</div></div></div>');
});
并且这项工作,但是如何在脚本中添加<a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a>
来工作,在模板中添加并显示带有标题的网站标题很简单,但是如何添加该脚本内部在leftwrap之后追加。我添加它,但它以纯文本形式出现。
答案 0 :(得分:0)
由于您使用的是模板语言,因此可能会在输出到达浏览器之前处理模板语言。如果不是,如果它在到达浏览器后以某种方式处理,那么jQuery可能试图从.html()中删除不需要的代码,而不是识别标签。如果你想要一些更干脆的东西,你也可以使用.text()。
然而,以最纯粹的形式回答你的问题(通过jQuery)。
在你的第二个例子中,你将所有内容都包装在div标签中,但这可以使用.wrap()完成...你应该做的是使用选择器来定位你想要的页面的哪个部分。另外,请注意你写了“wrapp-inner”而不是“wrap-inner”......
让我们回到你原来的问题。您想要在页面底部附加一个链接。在doc ready函数中:
$('body').append("somehtml"); // append to body
但是,为了保持理智,您应该创建一个“目标”div来填充。例如:
HTML(正文):
<div id="credits"></div>
在文件准备中:
$('#credits').append("somehtml");
看到这个证明两者的jsfiddle。 https://jsfiddle.net/83fbnwe4/
这显示了.html()和.append之间的区别,以及.html()有效附加的方法:
https://jsfiddle.net/83fbnwe4/2/
<强>更新强>
要用其他方法包含其他答案,基本上你可以从跳转中显示它并用CSS隐藏它,或者用jQuery隐藏它:
$('#mylink').hide();
如果你想让href动态化 - 比模板解析器呈现代码的时间晚填充它 - 或者如果包含基于AJAX请求的内容或者只是通过某种方式通过javascript事件,你可以改变它事后使用DOM解析。
// Simple:
$("#mylinkid").attr('href', 'http://www.live.com/');
//Complicated:
$("a[href^='http://stackoverflow.com']").each(function() {
this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/,
http://stackoverflow.com");
});
(借鉴How to change the href for a hyperlink using jQuery#179713)
答案 1 :(得分:0)
可能的解决方案:
您可以在模板中添加<a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a>
:
<div id="blogHomepageUrlLink" style="display: none;">
<a expr:href='data:blog.homepageUrl'><data:blog.title/>™</a>
</div>
所以你的模板处理程序可以处理它。
然后使用你的jQuery:
$('body').append('<div id="wrap"><div id="wrapp-inner"><div id="wrapleft"></div><div id="wrapright">Designed Templatezy</div></div></div>');
您应该可以添加以下链接:
$("#wrapleft").html($("#blogHomepageUrlLink").html());
或合并:
$('body').append('<div id="wrap"><div id="wrapp-inner"><div id="wrapleft">'+$("#wrapleft").html($("#blogHomepageUrlLink").html())+'</div><div id="wrapright">Designed Templatezy</div></div></div>');