Javascript 基于用户输入动态生成id选择器

Javascript 基于用户输入动态生成id选择器,javascript,jquery,selector,Javascript,Jquery,Selector,我在jQuery选择器中面临一个问题。我根据用户输入动态生成选择器字符串,如下所示:- jQuery("#" + userInput + "-edit").modal("show") 当用户输入值时,如AdvancedResults。选择器变为 jQuery("#AdvancedResults.-edit").modal("show") 它不会返回预期的元素,尽管 我在做些零碎的事吗?有没有更好的办法来解决这个问题 顺便说一句,为我的新问题道歉,因为我是JS世界的新手 提前感谢。只需使用:

我在jQuery选择器中面临一个问题。我根据用户输入动态生成选择器字符串,如下所示:-

jQuery("#" + userInput + "-edit").modal("show")
当用户输入值时,如AdvancedResults。选择器变为

jQuery("#AdvancedResults.-edit").modal("show")
它不会返回预期的元素,尽管 我在做些零碎的事吗?有没有更好的办法来解决这个问题

顺便说一句,为我的新问题道歉,因为我是JS世界的新手

提前感谢。

只需使用:

使用中的转义规则,如下所示:

$("#AdvancedResults\\.-edit").modal("show");
你可以替换。到\。动态使用str.replace:

var str=高级结果。; str=str.replace/\./g,\\.;//它将在之前动态添加\\。 console.log$+str+'-edit'.length;
如果元素确实具有id AdvancedResults.-edit,即包含一个点,则必须使用\\对其进行转义,如文档中所述,

在参数为动态且可能包含jQuery-id选择器不支持的特殊字符的情况下,使用选择器

jQuery("[id='" + userInput + "-edit']").modal("show")
示例代码段:

var userInput=abc。; alertjQuery[id='+userInput+-edit'].val
我已经解决了它使用属性黑客

具体如下:-

jQuery("[id='" + userInput + "-edit']").modal("show");

它对我非常有效。

你能分享html标记吗?或演示?用户可以输入任何特殊字符。由您提供的解决方案,仅适用于.dot。