gpt4 book ai didi

jquery - 有没有一个插件可以使 jQuery id 选择器点安全?

转载 作者:行者123 更新时间:2023-12-01 05:06:20 25 4
gpt4 key购买 nike

我已经知道如何选择 ID 包含点的 DOM 元素,并且我已经阅读了 stackoverflow 上的所有相关答案(如下所示: How to select html nodes by ID with jquery when the id contains a dot? ),但问题是有很多插件没有意识到这个问题,并且没有仔细检查我们正在使用的所有插件的代码并适本地替换选择器,我在想也许有另一个 jQuery 插件/扩展可以替换主要的选择器机制它是点安全的。我正在使用像 jqGrid 这样的插件,并且我在代码中看到很多地方都使用了这样的东西:

$('#' + id).somefunction()

有什么想法吗?

提前致谢

最佳答案

您可以更改 $.fn.init 函数来更改 jQuery 的行为,但是没有一种快速简便的方法可以确保带点的 ID 在整个应用程序中都是安全的。一个快速而肮脏的解决方案是通过更改 init 函数将所有 . 替换为 \\.,但随后所有类选择器都会中断。

唯一可靠的方法是将带有转义点的 ID 传递给所有插件。

编辑

如果您确实想要一个快速而肮脏的解决方案,只要您没有像 #id.class 这样的东西,这里的解决方案至少可以工作。它将适用于 #id .class(中间的空格)。

(function($){
$.fn._init = $.fn.init;
$.fn.init = function ( selector, context, rootjQuery ) {
if (typeof selector == 'string' && selector.match('#')) {
selector = selector.replace(/\#([^\s\.]*)\./g, '#$1\\.')
}
return new $.fn._init(selector,context,rootjQuery);
}
})(jQuery);

关于jquery - 有没有一个插件可以使 jQuery id 选择器点安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com