2 回答
TA贡献1868条经验 获得超4个赞
因为 ID 必须是唯一的,所以我建议在添加之前测试按钮是否已经存在。因此,您需要更改此行:
$("#loadAllTitles").append(myButton)
和:
if ($("#loadAllTitles").find('#' + $.escapeSelector(pk + '/')).length == 0)
$("#loadAllTitles").append(myButton)
我收到以下控制台错误:未捕获的错误:语法错误,无法识别的表达式:#/openGraph/104 –
如果您使用的是 jQuery 3.x,您需要使用:
jQuery.escapeSelector():转义任何在 CSS 选择器中具有特殊含义的字符。
更新 虽然pk是您创建新元素时的 ID,但您在此 ID 中添加了 final /。这是你的问题。
$('button').on('click', function(e) {
var pk = '#/openGraph/104';
var title='title';
myButton="<input type=\"button\" class = \"openGraph\" value=\""+title+"\" id="+pk+"/\>";
if ($("#loadAllTitles").find('#' + $.escapeSelector(pk + '/')).length == 0)
$("#loadAllTitles").append(myButton)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="loadAllTitles">
</form>
<button type="button">Click to add the same input field</button>
TA贡献1847条经验 获得超11个赞
检查第 3 行是否存在按钮
$(document).ready(function(){
$('#openXML').on('click',function(event){
if (!$('#+pk+').length) {
// Your code
}
}
}
添加回答
举报