Rob*_*ert 4 html javascript jquery dom jquery-selectors
我只是尝试将我的应用程序切换到jQuery 3.我正在进行一些测试,一切都按预期工作,直到我找到一个在选择器中使用"#"符号的应用程序.我有一个看起来像这样的jQuery:
var $existingFilter = $container.find('.filterFeedItem[data-component-type=#somefilter]');
Run Code Online (Sandbox Code Playgroud)
使用jQuery 3我收到一个错误:
jquery-3.0.0.js:1529 Uncaught Error: Syntax error,
unrecognized expression: .filterFeedItem[data-component-type=#somefilter]
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么jQuery不能解析包含这个符号的选择器?
请注意,更改显然发生在2.0版本,因为版本2.1.3使用选择器返回元素
var $existingFilter1 = $container.find('.filterFeedItem[data-component-type=#somefilter]');
Run Code Online (Sandbox Code Playgroud)
jsfiddle https://jsfiddle.net/f8nej922/2/
虽然未能在jQuery 2.2和1.12发布的文档中找到特定的变更或变更描述.
正如指出的通过@BoltClock,变化与选择器:用于标识令牌删除"#"的异常.
你可以用esacape #
字符\\
; 属性选择器的引用值; 或使用$.escapeSelector()
var $existingFilter = $container
.find('.filterFeedItem[data-component-type=\\#somefilter]');
Run Code Online (Sandbox Code Playgroud)
var $existingFilter = $container
.find('.filterFeedItem[data-component-type="#somefilter"]');
Run Code Online (Sandbox Code Playgroud)
var $existingFilter = $container
.find('.filterFeedItem[data-component-type='
+ $.escapeSelector('#somefilter') + ']');
Run Code Online (Sandbox Code Playgroud)
jsfiddle https://jsfiddle.net/f8nej922/4/
归档时间: |
|
查看次数: |
1126 次 |
最近记录: |