我有以下代码,其中包含一个链接,应该删除它所属的区域:
<a href="javascript:function() { $(this).closest(".DatesSelection").remove(); };"> <div class="CloseButton"> Close </div> </a>
字符串生成按钮,但当我单击它时,出现错误:未捕获的语法错误:意外的令牌(我该怎么解决呢?
ercv8c1e1#
问题是由于href属性中的函数定义和引号的使用。要解决这个问题,请删除逻辑周围的function(),使用onclick作为内联处理程序,并使用单独的引号来分隔attribute值和选择器字符串:
href
function()
onclick
<a href="#" onclick="$(this).closest('.DatesSelection').remove();">
字符串
on*
$(function() { $('.DatesSelection a').click(function(e) { e.preventDefault(); $(this).closest(".DatesSelection").remove(); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="DatesSelection"> <a href="#"> <div class="CloseButton"> Close </div> </a> </div> <div class="DatesSelection"> <a href="#"> <div class="CloseButton"> Close </div> </a> </div> <div class="DatesSelection"> <a href="#"> <div class="CloseButton"> Close </div> </a> </div>
的数据
vc9ivgsu2#
另一种选择是使用事件委托,在某个父容器上设置click事件侦听器,并检查事件的源是否是相应的锚点。
event.target.tagName === 'A'
a
event.target.parentNode.className === 'DatesSelection'
DatesSelection
document.body.addEventListener('click', event => { if (event.target.tagName === 'A' && event.target.parentNode.className === 'DatesSelection') { event.preventDefault(); event.target.parentNode.remove(); } });
个字符
2条答案
按热度按时间ercv8c1e1#
问题是由于
href
属性中的函数定义和引号的使用。要解决这个问题,请删除逻辑周围的function()
,使用onclick
作为内联处理程序,并使用单独的引号来分隔attribute值和选择器字符串:字符串
href
(它永远不应该在那里)或on*
事件属性(现在已经严重过时),就像这样:的数据
vc9ivgsu2#
另一种选择是使用事件委托,在某个父容器上设置click事件侦听器,并检查事件的源是否是相应的锚点。
event.target.tagName === 'A'
检查事件是否由a
元素触发event.target.parentNode.className === 'DatesSelection'
检查触发事件的元素的父元素是否具有类DatesSelection
个字符