我在这里再次提问
这是我的textarea
中的文字 <Abstract>
<Heading>Abstract</Heading>
<Para TextBreak="No">Some paragraph <Emphasis Type="Italic">q</Emphasis> </Para>
</Abstract>
可能的输出
<Abstract>
<Heading>Abstract</Heading>
<P>Some paragraph <i>q</i> </P>
</Abstract>
这是输出的原因
文本来自文本区域。
我需要根据其属性
更改标签名称所有Para标签必须更改为P标签
和所有
Type="Italic" attribute must be change to <i> tag
我搜索了一个解决方案
但我找到的解决方案是修改html。而不是文本区域的内容。非常感谢 这是我找到的解决方案,但我不能使它适用于我的问题
$(function(){
$('#switch').bind('click', function(){
$('p').replaceWith($('<div/>').html($('p').html()));
});
});
这是我需要的样本。谢谢
答案 0 :(得分:1)
请尝试如下操作。这不会删除标记<para>
和type="Italic"
中的属性。但它肯定会替换你想要的标签。
jQuery(document).ready(function(){
textval = $('textarea').val();
textnewval = textval.replace('Para TextBreak="No"', 'p').replace('/Para', '/p');
if(textnewval.indexOf('Italic') >= 0) //If Italic
{
EmphasisAttr = 'Italic';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'i').replace('/Emphasis', '/i');
}
if(textnewval.indexOf('Bold') >= 0) //If Bold
{
EmphasisAttr = 'Bold';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'b').replace('/Emphasis', '/b');
}
if(textnewval.indexOf('Underline') >= 0) //If underline
{
EmphasisAttr = 'Underline';
textnewval = textnewval.replace('Emphasis Type="'+EmphasisAttr+'"', 'u').replace('/Emphasis', '/u');
}
$('textarea').val(textnewval);
alert($('textarea').val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea rows="20" >
<Abstract>
<Heading>Abstract</Heading>
<Para TextBreak="No" >Some paragraph <Emphasis Type="Italic">q</Emphasis><Emphasis Type="Bold">Bold</Emphasis><Emphasis Type="Underline">Underline</Emphasis> </Para>
</Abstract>
</textarea>
&#13;
如果不是您的预期,请告诉我。