JQuery“contains"对HTML编码不返回任何值

JQuery "contains" returns nothing for html encoding

本文关键字:编码 HTML 返回 任何值 contains quot JQuery      更新时间:2023-09-26
var foundin = $('*:contains("the")').last();

在页面上工作,但是

var foundin = $('*:contains("&copy")').last();

不返回任何内容,即使'©确实出现在页面源代码中。我试着逃避'&',但这也不起作用。是否有一种方法可以使用包含在页面中找到html编码字符?

基本上,我要做的就是找到包含©并解析它以获得版权所有者。我问了一个类似的问题,针对这与regex在这里:选择HTML文本元素与regex?

快速和肮脏:

var $div = $("<div>");
$.expr[":"].containsEnc = function(a, b, c, d) {
    var decoded = $div.html(c[3]).text(); // decode &copy to ©
    return ~a.textContent.indexOf(decoded); // does the element contain the character
};

那么你可以使用containsEnc作为选择器:

$('body:containsEnc("&copy")').html('ok');

但是,它可能不是最安全、最高效的。

http://jsfiddle.net/wfLur/1/