JQuery在<script> </script>中添加文本

时间:2011-05-10 01:39:24

标签: jquery ajax jquery-plugins

我通过查询字符串收到一个字符串,我希望在<script>内的给定文本部分之后添加此字符串。

出现<script>的HTML代码部分是:

<span id="e641370446" class="inline"></span><script type="text/javascript">/*<![CDATA[*/eval("var a=\"697OHPkfxK+cMU-8tFgWnE4zQ3GYSIvNDpi_0Co5eVlw@yZTJmu1B.hrXqRdAsj2Lba\";var b=a.split(\"\").sort().join(\"\");var c=\"wsRdrdUVAmXmwr7wr.7lR\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e641370446\").innerHTML=\"<a class=\\\"inline mail\\\" href=\\\"mailto:\"+d+\"?subject=[Curso] SEO Atípico%20Contato&body=Nome:%20%0D%0ATelefone:%20%0D%0AMensagem:%20%0D%0A\\\">envie um e-mail para cursos@atipico.com.br</a>\"")/*]]>*/</script>

请注意,此脚本是encripted,并且始终以span开头,每次都有不同的id。

我要修改的部分是"mailto:\"+d+\"?subject=[Curso]"[Curso]之后插入查询字符串值,如下所示:

[Curso] string

我正在使用“jQuery-URL-Parser”插件来解析网址。

此外,这个脚本是一个mailto链接,因此,我只能在点击的情况下进行操作...

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

考虑到跨度ID,这很容易解决。使用jQuery来更改DOM,而不是脚本的内容。

var spanId = 'e641370446', // get this from wherever
    $link = $('#' + spanId).children('a.inline.mail');

$link.prop('href', $link.prop('href') + '&key=value');

亲眼看看:http://jsfiddle.net/mattball/E8HC5/


<强> 编辑:

  

我正在尝试调整您的代码,但它无法正常工作。在这种情况下,我必须在“[Curso]”之后添加字符串......任何想法?

您可以使用像String.replace()这样简单的内容。

...
$link.prop('href', $link.prop('href').replace('[Curso]', '[Curso] some text'));
...

演示2:http://jsfiddle.net/mattball/f2sKa/


解决方案(由OP添加):

根据你的帮助,这是另一个人建议的:

$('a.mail').click(function (event) {
    var $this = $(this);
    var linkUrl = $this.attr('href');

    linkUrl = linkUrl.replace('[Curso]', '[Curso] some text');
    $this.attr('href', linkUrl);
});