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
}
}
}
添加回答
舉報