使用jQuery的replaceWith()方法变量

时间:2015-08-01 15:53:45

标签: javascript jquery html

好的,这个看起来很简单(可能是)。我正在尝试使用jQuery替换方法,但我不想将所有将替换页面上的html的html放入方法本身(就像60行HTML)。所以我想把一个替换的html放在一个名为qOneSmall的变量中,就像这样

var qOneSmall = qOneSmall.html('..........all the html'); 

但是当我尝试这个时,我得到了这个错误

Uncaught SyntaxError: Unexpected token ILLEGAL

我在那里看不到任何保留的话......?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为解决方案是只抓住你感兴趣的页面上的元素。你说你有60行。如果您确切地知道要替换的内容,则只需使用id ='mySpecialText'的div中的文本。然后使用jQuery来查找和替换它。

var replacementText = "....all the HTML";
$("#mySpecialText").text(replacementText);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mySpecialText">Foo</div>

答案 1 :(得分:0)

如果您只想替换文字,则可以使用jaj.laney&#39; .text()方法。但是,这不会将字符串呈现为HTML。

您使用.html()的方式可能非法,因为qSmallOne不是JQuery对象。该方法不能对任意变量执行。您可以将HTML字符串设置为变量,并将该字符串传递给.html()函数,如下所示:

var htmlstring = '<em>emphasis</em> and <strong>strong</strong>';  
$('#target').html(htmlstring);

要查看使用.html().text()之间的区别,您可以查看此简短fiddle

看到HTML后编辑

所以这里有很多事情要做。我只是将这些事情归入一系列问题

  1. HTML字符串
  2. 所以我在这里学到了一些东西。使用HTML字符串中的回车符和制表键会破坏字符串。非法行为来自于字符串永远不会被正确终止的事实,因为它认为字符串在第一行结束。剥去字符串中的空白区域,它们完全有效。

    1. 变量名称
    2. 小事,你在qSmallOne中输了一个错字。一定要检查你的拼写,特别是在处理这些巨大的变量时。预先进行一点点努力可以避免一大堆头痛。

      1. 选择正确的目标
      2. 内容更改的目标是变量中字符串中的ID,而不是实际DOM中的ID。虽然看起来你正在处理这个问题,但我发现它相当令人困惑。我会使用一个包含静态ID的元素而不是目标(这样你就不必记住为什么你将来为一个容器处理多个ID)。

        1. 使用replaceWith()和html()
        2. .replaceWith()用于将元素替换为其他元素。这包括目标元素,因此您需要非常了解自己想要替换的内容。 .html()可能是一种更好的方法,因为它取代了目标中的内容,而不包括目标本身。

          我已经做了这些更新,并分散了你的小提琴here