首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery包含的选择器不能使用反逗号和breackt

jquery包含的选择器不能使用反逗号和breackt
EN

Stack Overflow用户
提问于 2015-10-13 21:15:35
回答 1查看 573关注 0票数 2

我在表格td (8“& 12")中有以下文本

我的代码是

代码语言:javascript
复制
var match = $('#table_body > tr > td:contains("' + searchterm + '")');

当我尝试查找(8“& 12")时,得到以下错误

错误:语法错误,无法识别的表达式::包含(“”)“

最后的")两个字符造成了问题我尝试了转义字符串(添加斜杠)错误消失了,但没有搜索结果

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 21:19:47

如果你用单引号将你的td:contains('some text with "quotes"')括起来,它就会起作用。文档没有列出使用双引号作为有效的替代方法。请注意,您并不真的需要周围的引号,您可以只使用空洞的单词。无论你的文本包含单引号还是双引号,它都会起作用。

代码语言:javascript
复制
var match = $("#table_body > tr > td:contains('" +searchterm+ "')");
// or without quotes altogether
var match = $("#table_body > tr > td:contains(" +searchterm+ ")");

示例:

代码语言:javascript
复制
var text = '8" 12"';
var text2 = '5" 6"'
var text3 = '2\' 4"';
var text4 = "Testing (1' 3')";


// Quotes are allowed 
$("div:contains('"+text+"')").css('background-color', 'red');

// But not necessary
$("div:contains("+text2+")").css('background-color', 'yellow');

// Works with mixed single and double quotes
$("div:contains("+text3+")").css('background-color', 'gray');

// However, it doesn't support parentheses, you'll have to search it yourself
// And make sure you escape regex special characters

// Escapes any special characters
RegExp.escape = function(s, flags) {
    return new RegExp(s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), flags);
};

console.log(RegExp.escape("1' 3')"))
$('div').filter(function(i, el) {
    return $(el).text().match(RegExp.escape("1' 3')"));
}).css('background-color', '#fef0e4');
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>8" 12"</div>
<div>5" 6"</div>
<div>2' 4"</div>
<div>1' 3')</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33103686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档