包含带引号的JavaScript代码中的引号的HTML标记
我正在编写JavaScript代码,在单击时将函数getImage指定为稍后应该显示在页面中的图像的源。然而,引号给了我一个问题包含带引号的JavaScript代码中的引号的HTML标记,javascript,html,Javascript,Html,我正在编写JavaScript代码,在单击时将函数getImage指定为稍后应该显示在页面中的图像的源。然而,引号给了我一个问题 <img src="bill.jpg" class="captify" id="teamformat" alt="Bill Gates" onclick="getName('Bill Gates'); getMotto('Bill\'s motto'); getImage ('<img src=\"http://www.somepage.com/im
<img src="bill.jpg" class="captify"
id="teamformat" alt="Bill Gates" onclick="getName('Bill Gates');
getMotto('Bill\'s motto');
getImage ('<img src=\"http://www.somepage.com/images/team/bill.jpg\"/>');" />
”);" />
如何修复getImage函数中的引号?
谢谢。通常,您不需要在单引号分隔的字符串中转义双引号:
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" />
您遇到了一个问题,因为您在一个属性中同时使用了两种类型的引号-您的JavaScript太多了,需要转义内部的双引号(使用“
)
这两个都应该放在一个javascript函数中,并将click事件附加到该函数中-不要直接将它们放在onclick
事件处理程序中,这是一种不好的做法
比如:
function getDetailsForBill(){
getName('Bill Gates');
getMotto('Bill\'s motto');
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg" />');
}
虽然您确实应该注册一个事件侦听器,但通常使用。,您不需要在单引号分隔的字符串中转义双引号:
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" />
您遇到了一个问题,因为您在一个属性中同时使用了两种类型的引号-您的JavaScript太多了,需要转义内部的双引号(使用“
)
这两个都应该放在一个javascript函数中,并将click事件附加到该函数中-不要直接将它们放在onclick
事件处理程序中,这是一种不好的做法
比如:
function getDetailsForBill(){
getName('Bill Gates');
getMotto('Bill\'s motto');
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg" />');
}
尽管您确实应该注册一个事件侦听器,但请使用。不要逃避它:
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" />
getImage(“”);“/>
不要逃避它:
getImage ('<img src="http://www.somepage.com/images/team/bill.jpg"/>');" />
getImage(“”);" />
您只需转义字符串中的重复引号,例如,fun('这是最后一天')
您只需转义字符串中的重复引号,例如,fun('这是最后一天')
感谢您的及时回复。这是一个好主意,将所有内容都放在一个函数中。我删除了引号转义斜杠,并将其打印在可单击的图像下方”);“/>@user1655857-正如我所说,使用函数可以避免所有这些问题。”您不需要在单引号分隔的字符串中转义双引号“-呃,在这种情况下,你会的,不是吗?HTML在解析属性时不调用JavaScript解析器。我很确定属性值不能包含原始的“
。这就是”
的用途。如果使用onclick
属性是一种不好的做法,那么您为什么还要这样做呢?再次感谢您,按照您的建议解决了这个问题。我将getDetailsForBill()函数放在它在标记中使用的其他函数下面,例如getName()函数,每个函数都使用这个样式文档。getElementById('show_name')。innerHTML=name。我试图使用样式显示getDetails函数提供的数据,但它没有显示详细信息。谢谢您的及时回复。这是一个好主意,将所有内容都放在一个函数中。我删除了引号转义斜杠,并将其打印在可单击图像的下方”);“/>@user1655857-就像我说的,通过使用函数来避免所有这些问题。“你不需要在单引号分隔的字符串中转义双引号”-呃,在这种情况下,你需要,不是吗?HTML在解析属性时不调用JavaScript解析器。我很确定属性值不能包含原始的“
。这就是”
的用途。如果使用onclick
属性是一种不好的做法,那么您为什么还要这样做呢?再次感谢您,按照您的建议解决了这个问题。我将getDetailsForBill()函数放在它在标记中使用的其他函数下面,例如getName()函数,每个函数都使用这个样式文档。getElementById('show_name')。innerHTML=name。我试图使用样式显示getDetails函数提供的数据,但它没有显示细节。