如何使用XML数据更改网站上的图像&jQuery
How to change an image on a site using XML data & jQuery
我有一个网站,在页面的顶部有一个横幅。我已经开始彻底检查我的HTML结构,现在正在从XML文件中获得填充站点的各种信息。我使用jQuery的HTML是:
<script>
function myExampleSite()
{
var myURL = window.location.href;
var dashIndex = myURL.lastIndexOf("-");
var dotIndex = myURL.lastIndexOf(".");
var result = myURL.substring(dashIndex + 1, dotIndex);
return result;
}
var exampleSite = myExampleSite();
</script>
<script>
var root = null;
$(document).ready(function ()
{
$.get("Status_Pages.xml",
function (xml)
{
root = $(xml).find("site[name='" + exampleSite + "']");
result = $(root).find("headerImage");
$("td#headerImage").html($(result).text());
var imageSrc=$(root).find("headerImage").text();
$(".PageHeader img").attr("src",imageSrc);
result = $(root).find("version");
$("td#version").html($(result).text());
result = $(root).find("status");
$("td#status").html($(result).text());
result = $(root).find("networkNotes");
$("td#networkNotes").html($(result).text());
....etc etc
});
});
</script>
我的XML文件看起来像这样。
<sites>
<site name="Template">
<headerImage>images/template-header.png</headerImage>
<productVersion>[Version goes here]</productVersion>
<systemStatus color="green">Normal</systemStatus>
<networkNotes>System status is normal</networkNotes>
</site>
</sites>
我有几个<site>
,它们都有自己的数据,将填充各个站点的不同区域。不过我遇到了一些麻烦。
第一个问题是它目前如何获取其头图像:html
<div class="container">
<div class "PageHeader"> <!-- Header image read from XML file -->
<img border="0" src=""/>
</div>
现在它被硬编码为模板头图像,但我需要使其通用并读取该站点的XML值。因此,而不是硬编码为images/template-header.png
,它将读取当前网站的XML值,这仍然是模板头-但它不会为每个页面。
我如何在图像字符串读取填充我的HTML,使每个网站有一个不同的图像取决于什么是在XML?
Edit:编辑代码以匹配当前问题。目前,我只是得到一个破碎的图像,但我仍然可以将其更改回硬编码的图像URL (images/template-header.png),它的工作
因为您已经有了可以从XML中提取图像URL信息的代码,即
result = $(root).find("headerImage");
$("td#headerImage").html($(result).text());
现在的问题是将URL附加到图像标签。我们需要选择对象,然后简单地改变它的src
属性。使用jQuery,这实际上非常简单。它看起来像
var root = $(xml).find("site[name='" + site + "']");
//get the image url from the xml
var imageSrc=$(root).find("headerImage").text()
//get all the images in class .PageHeader, and change the src
$(".PageHeader img").attr("src",imageSrc)
它应该可以工作
例子总之,如果您已经想要动态地将一些值放入HTML标记中,这是非常容易的。.html("<b>bold</b>")
表示内容,.attr("attrName","attrValue")
表示一般属性。.css("background","red")
用于直接更改CSS。还有一些类修改的东西在将来会很有用。
相关文章:
- 使用带括号的图像URL作为jQuery的背景
- 如何使用jquery将base64图像路径转换为真实路径
- 重新加载/替换图像 jQuery 作为
- 中的列表项
- 鼠标悬停在图像 jquery 上
- 使用图像 jQuery 切换
- 检查显示的(随机)图像是否与上一个(随机)图像(jQuery和JavaScript)相同
- 更改背景图像 jQuery
- 单击函数不在图像jQuery上启动
- 预览图像Jquery脚本don't运行良好
- 使用图像Jquery对话框预加载iFrame
- jQuery脉动代码与滚动图像jQuery代码冲突
- 检测粘贴事件在浏览器中的图像(jquery/javascript)
- 图像库与覆盖和html内部不能覆盖正确的图像.jquery
- 预加载图像- JQuery
- 使用HTML扩展图像&Jquery
- 从Rest API获取图像.JQuery的问题
- 使用尽可能多的独立线程检索5个图像- jquery ajax
- 点击图像jQuery -函数不工作后追加
- 如何使用XML数据更改网站上的图像&jQuery
- 在不向服务器发出新请求的情况下更改图像jQuery