我一直在尝试修改字符串。获取内容,删除其中的一部分,并将该文本复制为段落本身的 alt 属性。我决定启动必须被剪切的文本([并完成它])所以其中的所有内容都必须剪切并粘贴为alt属性。它看起来很容易,但我找不到JQuery(更好)或Javascript的方法,但我知道必须有办法。
在此链接(http://jsfiddle.net/MYbuddy/6psR2/)中,您可以看到我刚刚开发的流程图。使用应用了特定类的列表(.flowchart)自动创建流程图,元素内部是我必须剪切的文本。
<li>list 01 01 01 ([This text must be removed and copied as "alt" or "title" text])</li>
你将在链接上看到的html就是我直接从umbraco获取的HTML,我无法修改它(比如添加特定的样式),为什么我用我的脚本做了一些“稀有”的东西,呵呵
我希望你们这一切都有意义。
谢谢,
答案 0 :(得分:0)
如果你使用这个jquery:
$('.flowchart li > p').each(function () {
var $this = $(this), //store this so we can use it later
txt = $this.text(), //this is the current text value
lText = txt.split('['); //this is splitting the text at the '['
$this.attr({ title: ""+lText[1] }); //here we are setting the title to lText[1] which is the text AFTER the split
$this.text(lText[0]); //here we are setting the current text to lText[0] which is the text BEFORE the split
});
它会将文本分割到将添加到标题的[
,然后文本将被设置为文本的第一部分。
如果可能,您应该更改文字,这样您才能获得[
而不是([ text ])
,否则您只需要更多代码即可将其删除。
这是指向小提琴http://jsfiddle.net/6psR2/4/
的链接这是一个扩展版本,它将分割开头和结尾:
$('.flowchart li > p').each(function () {
var $this = $(this),
txt = $this.text(),
lText = txt.split('['),
rText = txt.split(']');
if (typeof rText[0] === "undefined")
{rText[0] = ""}
if (typeof rText[1] === "undefined")
{rText[1] = ""}
if (typeof lText[0] === "undefined")
{lText[0] = ""}
if (typeof lText[1] === "undefined")
{lText[1] = ""}
$this.attr({ title: lText[1]+"" });
$this.text(lText[0]+" "+rText[1]);
});
它还会检查字符串值是否未定义,如果是,则将其设置为空字符串以保存添加“undefined”作为标题。