Javascript 在LI标记中将SRC属性替换为TITLE
我有下面给出的HTML:Javascript 在LI标记中将SRC属性替换为TITLE,javascript,html,Javascript,Html,我有下面给出的HTML: <ul id="thumbsPhotos"> <li src="/images/1alvaston-hall-relaxing-lg.jpg" onclick="updatePhoto (this.title)"><img src="/images/1alvaston-hall-relaxing-sl.jpg" width="56" height="56"></li> <li onclick=
<ul id="thumbsPhotos">
<li src="/images/1alvaston-hall-relaxing-lg.jpg" onclick="updatePhoto (this.title)"><img src="/images/1alvaston-hall-relaxing-sl.jpg" width="56" height="56"></li>
<li onclick="updatePhoto(this.title)" src=""><img src="" width="56" height="56"></li>
<li onclick="updatePhoto(this.title)" src=""><img src="" width="56" height="56"></li>
</ul>
您最有可能使用与src属性匹配的正则表达式替换并进行转换。我看到,即使没有匹配项,您也希望添加title属性,这也应该是可能的
我将尝试为此挖掘一些正则表达式示例。不是答案,但这不是一种非常语义化的方法。这是从哪里来的?为什么li元素上有src 假设您需要一个javascript选项,您可以使用类似jquery的功能来执行以下操作:
<ul id="thumbsPhotos">
<li title="/images/1alvaston-hall-relaxing-lg.jpg" onclick="updatePhoto(this.title)"><img src="/images/1alvaston-hall-relaxing-sl.jpg" width="56" height="56"></li>
<li onclick="updatePhoto(this.title)" title=""><img src="" width="56" height="56"></li>
<li onclick="updatePhoto(this.title)" title=""><img src="" width="56" height="56"></li>
</ul>
未测试,但这里有一个正则表达式,它可能会为你做这件事
$(document).ready(function() {
$("li[src], li[src='']").each(function() {
var li = $(this);
li.attr("title", li.attr("src"));
li.removeAttr("src");
});
});
//查找:
]*)src=“(.*?”(.*?)
//替换:
更新:经过测试,在您的示例中有效
如果您想使用Javascript在客户端运行此操作(无论出于什么古怪的原因),您可以这样做:
// find:
<li ([^>]*)src="(.*?)"(.*?)>
// replace:
<li $1title="$2"$3>
var ul=document.getElementById(“thumbsPhotos”);
ul.innerHTML=ul.innerHTML.replace(
/]*)src=“(.*)”(.*)>/g,
“ ”
);
如果你需要这样做一次,你会不会找到并替换工作
否则,我同意正则表达式是最好的选择。因此,通过单击
元素,您想更改嵌套的title属性值吗?不,我想他想更改他的输出,使li的“src”属性现在成为“title”属性。不,我在中有一个src属性(请检查第一个html),我只想用服务器端完成的“title”(请检查第二个html)替换所有的src属性,对吗?我不明白为什么在 中首先会有src标记?是否可以使用innerHTML,在浏览器中使用regexIn?您仍然需要运行某种javascript。你为什么不接受这个解决方案?这是一个家庭作业问题吗?基本上我需要在运行时将页面上的“src”改为“title”。好的,我的代码可以做到这一点。您可以托管jquery库,或者链接到位于的缩小版本。然后把上面的代码放到一个script标记中,你还没有回答为什么在li标记上有src属性的问题?为什么不首先创建正确的HTML?你能用innerHTML给出这个解决方案吗
var ul = document.getElementById("thumbsPhotos");
ul.innerHTML = ul.innerHTML.replace(
/<li ([^>]*)src="(.*?)"(.*?)>/g,
'<li $1title="$2"$3>'
);