Javascript 在LI标记中将SRC属性替换为TITLE

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=

我有下面给出的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="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>'
    );