我在jQuery Mobile中遇到过一种情况,我在这里生成一个超出引号的引号内的引号。我在其他帖子中搜索了可能的解决方案,但似乎没有任何效果。这是原始代码:
$("#char_list").append("<div data-role='collapsible'>
<h4> " + charName + "</h4><p><strong>Number of Actions:</strong> " + charNumActions +
"</p><a data-role='button' class='edit_button'
onClick='sessionStorage.setItem('editCharName', '" + charName + "')'
data-icon='edit' data-iconpos='left'>Edit</a><a data-role='button' id='delete_char_button'
class='delete_button' data-inline='true' data-icon='delete' data-iconpos='left'>Delete</a></div>");
问题在于onclick部分;它会产生语法错误,我理解其中的原因。我在单引号后使用了单引号。
所以,在搜索完这些论坛之后,我尝试转义这样的第二组引号(为了简洁起见只放入onclick部分):
onClick='sessionStorage.setItem(\"editCharName\", '\"" + charName + "\")'
这不会产生语法错误,但它会使按钮无效;我点击它,一切都没有发生。 那么我也尝试了这个,也来自这个论坛:
onClick='sessionStorage.setItem("editCharName", '"" + charName + "")'
这与逃避报价具有相同的效果。也就是说,单击按钮时没有任何反应。
必须有办法做到这一点。如果有人有任何建议,请告诉我。谢谢!
答案 0 :(得分:2)
喜欢这个吗?
$("#char_list").append("<div data-role='collapsible'>" +
"<h4>" + charName + "</h4>" +
"<p><strong>Number of Actions:</strong>" + charNumActions + "</p>" +
"<a data-role='button' class='edit_button' data-icon='edit' data-iconpos='left'>Edit</a>" +
"<a data-role='button' id='delete_char_button' class='delete_button' data-inline='true' data-icon='delete' data-iconpos='left'>Delete</a>" +
"</div>");
$(document).on('click','.edit_button',function(){
var charName = $(this).parents('[data-role="collapsible"]').find('h4').html();
sessionStorage.setItem('editCharName',charName);
});