【发布时间】:2014-09-02 07:03:36
【问题描述】:
请考虑以下代码:
// @include /(^https?:\/\/www\.|^https?:\/\/)google\.com(\.|\/).*/
// @include /(^https?:\/\/www\.|^https?:\/\/)stackoverflow\.com\/.*/
// @include /(^https?:\/\/www\.|^https?:\/\/)userscripts-mirror\.org\/.*/
// @include http://wiki.greasespot.net/*
// @version 1.0
// @require https://code.jquery.com/jquery-2.1.1.min.js
// @grant GM_addStyle
$ ( 'body:contains("serscripts.org")').each ( function () {
var results = $(this);
var text = results.text();
console.log(text);
text = text.replace( /serscripts\.org/ig, "serscripts-mirror.org" );
text = text.replace( /(:8080|%3A8080)/ig, "");
//results.text ( text );
} );
我预计返回应该只是包含该字符串的元素,但控制台上的结果是正文的所有文本。
考虑this page在线:
// @updateURL https://userscripts.org/scripts/so...
我想改变它。
或this one:
// @require http://userscripts.org/scripts/source...
我也想换。
标签之间的所有单词都应该检查字符串,并且只返回有它的单词。
什么是正确的选择器?
注意:<a></a> 之间的链接属性和文本已使用类似的 .each ( function ) 进行了更改。
【问题讨论】:
-
您选择了
<body>元素,其中包含serscripts.org。你完全明白了。 -
您可能想在分号前添加一个空格
-
从选择器中取出
body -
@DJDavid98 我没听明白,为什么?
标签: jquery replace greasemonkey