我想为Google Chrome编写一个扩展程序,用于检测网页上的源代码片段并自动将其复制到剪贴板。
我是javascript和jquery的新手,所以第一步,我想尝试一个非常简单的案例。
我想找到包含字符串“import”的元素,并在元素后添加文本“Here is some code”。有人能给我一个线索吗?
我的第一次尝试是$('*:contains("import ")').after("Here's some code");
,但在每个元素之后插入,包括父母,当我只想在最低级别的孩子之后插入。
修改:我希望代码可以在任何网站上使用。所以我想找到任何包含“import”的元素。特定于示例站点的解决方案不是我正在寻找的。 p>
答案 0 :(得分:0)
在您的示例网站上为我工作
$(".prettyprint span:contains('import')").after(" Here's some code");
确保在语法完成语法完成后,此代码作为回调运行
答案 1 :(得分:0)
浏览页面上的每个文本节点并搜索查询 - "import"
。如果匹配,则在"Here's some code"
之后附加字符串parent()
。
$("body *").contents().filter(function() {
if(this.nodeType != Node.TEXT_NODE) {
return;
}
if(this.nodeValue.indexOf('import') == -1) {
return;
}
$(this).parent().after("Here's some code");
});
使用您给出的示例,这将在每行代码后添加"Here's some code"
。要找出代码的确切位置,您必须应用一些启发式方法。