好的,这个看起来很简单(可能是)。我正在尝试使用jQuery替换方法,但我不想将所有将替换页面上的html的html放入方法本身(就像60行HTML)。所以我想把一个替换的html放在一个名为qOneSmall的变量中,就像这样
var qOneSmall = qOneSmall.html('..........all the html');
但是当我尝试这个时,我得到了这个错误
Uncaught SyntaxError: Unexpected token ILLEGAL
我在那里看不到任何保留的话......?任何帮助将不胜感激。
答案 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字符串中的回车符和制表键会破坏字符串。非法行为来自于字符串永远不会被正确终止的事实,因为它认为字符串在第一行结束。剥去字符串中的空白区域,它们完全有效。
小事,你在qSmallOne
中输了一个错字。一定要检查你的拼写,特别是在处理这些巨大的变量时。预先进行一点点努力可以避免一大堆头痛。
内容更改的目标是变量中字符串中的ID,而不是实际DOM中的ID。虽然看起来你正在处理这个问题,但我发现它相当令人困惑。我会使用一个包含静态ID的元素而不是目标(这样你就不必记住为什么你将来为一个容器处理多个ID)。
.replaceWith()
用于将元素替换为其他元素。这包括目标元素,因此您需要非常了解自己想要替换的内容。 .html()
可能是一种更好的方法,因为它取代了目标中的内容,而不包括目标本身。
我已经做了这些更新,并分散了你的小提琴here。