40252492
发表于 2022-8-22 11:24:29
cxxjackie 发表于 2022-8-19 20:59
最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...
勉勉强器看得懂
#dulstMenu a就是,id是dulstMenu的,空格是“下面的”,下面的a元素
.name就是,class是name的,属性里有data-cardid=啥的
li.啥就是,<li开头的
>.data就是,父元素是XXX的子元素XXX,父元素>子元素,中间不能隔着其他元素
{:4_115:}谢谢大佬,我知道CSS选择器是啥了
40252492
发表于 2022-8-22 14:54:13
本帖最后由 40252492 于 2022-8-23 12:00 编辑
> 本帖最后由 40252492 于 2022-8-23 12:00 编辑
> 本帖最后由 40252492 于 2022-8-22 17:45 编辑
> 本帖最后由 40252492 于 2022-8-22 17:44 编辑
> 本帖最后由 40252492 于 2022-8-22 17:44 编辑
> 本帖最后由 40252492 于 2022-8-22 17:36 编辑
> (forum.php?mod=redirect&goto=findpost&pid=33105&ptid=2862)
> > 最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...
大佬大佬,我遇到点问题,上边栏的play按钮上的字Play没生效,他的class有4个
class="menuItem playButton playAMatch button"
您写的#dulstMenu a,左边按钮的替换都生效了,只有Play没有生效
我自己试了试写选择器,写唯一的.playButton没生效,写同时拥有4个class的.menuItem.playButton.playAMatch.button也没生效,照理说您写的应该会生效的哇,请问怎么回事?
!(data/attachment/forum/202208/22/145156fxg1zxv5157fjni5.png)
然后,请看图,这是网址
https://dulst.com/overdulst/cards
1、右上角的“硬币”,我写的是.coins .unit
2、下面列表里的卡名,我写的是.card-list-container a .name
请问有什么可以优化的地方吗?比如怎么写能让查找的速度变快点?
~~还有一个刚出现的问题,在文本中含有一个换行我拿您教我的$$看了一下是 \n,请问上面的文本替换的英文部分怎么写?谢谢!我从$$里展开2级找到一个不是\n而是空格的一行,复制上去就好了,但是还是写成\u00A0这样的比较好,不然后人看到会当做普通空格的,而且粘起来太费劲了,请问这种\u00A0的码叫什么?哪里查?~~
~~不用了,我查到了,叫unicode编码,也找到转换工具了~~
还不是unicode编码,是Native转Ascii,转出来是\u0020
cxxjackie
发表于 2022-8-22 20:33:58
40252492 发表于 2022-8-22 14:54
> 本帖最后由 40252492 于 2022-8-22 17:44 编辑
> 本帖最后由 40252492 于 2022-8-22 17:44 编辑
用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的是全大写。不确定的话可以先选中元素(注意看后面有个 == $0),然后在控制台中输$0.innerText,用这种方式复制更靠谱。
查找更快就是尽量少套太多后代/子代选择器,比如第二个卡名的父级a元素有很多属性,可以写成:a>.name,这样少套一层(还有子代也比后代要快),不过实际差异极小,一般不用太纠结这种问题,只要能正确选中就行。
40252492
发表于 2022-8-23 12:07:34
cxxjackie 发表于 2022-8-22 20:33
用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...
多谢,还真的有个 == $0),又学一招!{:4_106:}
后代就是空格,子代就是>,后代要把全部后代都过一遍,子代直接找一级,应该是因为这个所以快。
!E@7.jpg](data/attachment/forum/202208/23/120732wjfd0f11n6jn2mff.jpg)
多谢大佬!!!祝您升职加薪!子孙满堂!长命百岁!
40252492
发表于 2022-8-23 12:44:59
本帖最后由 40252492 于 2022-8-23 14:55 编辑
> 本帖最后由 40252492 于 2022-8-23 13:23 编辑
> 本帖最后由 40252492 于 2022-8-23 13:23 编辑
> (forum.php?mod=redirect&goto=findpost&pid=33221&ptid=2862)
> > 用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...
大佬大佬,还有个小问题,您看,选择器很多,已经突破天际了,请问选择器咋写成竖着的哇?是要定义个变量的列表吧,我想给每行加注释
!(data/attachment/forum/202208/23/124416xq9ooqzqq9zooyey.png)
~~我先自己写写试试看。。。~~
崔羊羊大失败!!!QAQ
是用var的吗,但是格式是啥啊,百度查了半天都没找到,不知道搜什么关键词
cxxjackie
发表于 2022-8-23 21:11:38
本帖最后由 cxxjackie 于 2022-8-23 21:20 编辑
所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比如给卡牌效果那部分加上翻译后加粗倾斜,其他部分只翻译等等,而不是牵一发动全身。分开的写法用你25楼的代码删掉第46行就对了。
硬要写一起然后分行也不是不行,用字符串连接:
```js
'a' //注释1
+ ',b' //注释2
+ ',c' //注释3
```
40252492
发表于 2022-8-24 10:20:10
> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> > 所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...
多谢大佬!真的很感谢!这几周给您添蘑菇了!Q3Q
其实昨晚我自己研究出来了,是这样写的,逗号和加号在选择器后面,注释在下一行
```
'选择器1,'+
//注释1
'选择器2,'+
//注释2
'选择器3'
//注释3
```
网上管这种连接方法叫“满天星”,说是不整洁,但是我发现,如果用反斜杠连接,就没法在其中穿插【//注释】,这样的也不行→【/\*注释\*/】
```
'选择器1,\
选择器2,\
选择器3'
```
貌似是因为只有1对单引号,其中的内容全会被当成值
cxxjackie
发表于 2022-8-24 12:04:12
40252492 发表于 2022-8-24 10:20
> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> ...
我记得\这种分行方式的兼容性不如加号,在一些浏览器里可能行不通,如果不在意兼容性,模板字符串(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals)应该是更好的选择,跟\一样不能写注释,但支持更多特性。除非有特别的理由,我不建议用\这种不上不下的写法。
还有一种写法比加号更整洁:
[
'a', //注释
'b',
'c'
].join(',')
这种写法相比直接用加号的性能稍差,但差距小到可以忽略不计,所以也有很多人推崇。
40252492
发表于 2022-8-24 12:25:56
本帖最后由 40252492 于 2022-8-24 15:02 编辑
> 本帖最后由 40252492 于 2022-8-24 15:01 编辑
> 本帖最后由 40252492 于 2022-8-24 14:55 编辑
> 本帖最后由 40252492 于 2022-8-24 14:54 编辑
> 本帖最后由 40252492 于 2022-8-24 13:19 编辑
> 本帖最后由 40252492 于 2022-8-24 13:17 编辑
> 本帖最后由 40252492 于 2022-8-24 13:06 编辑
> 本帖最后由 40252492 于 2022-8-24 13:05 编辑
> 本帖最后由 40252492 于 2022-8-24 12:58 编辑
> 本帖最后由 40252492 于 2022-8-24 12:36 编辑
> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> > 所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...
找到问题所在了,我打开https://dulst.com/overdulst就不生效,我打开https://dulst.com/overdulst/cards就生效
// @match https://dulst.com/overdulst/*这个写法不太对吧大佬?
我把\*前面的斜杠删了,没问题了
(下面的不用看了)
~~大佬大佬,我这么写完之后,一开始还能生效,然后把注释粘进去,“上边栏按钮”在一次修改后替换不生效了,找原因,再刷新全部替换都突然不生效了,请您帮忙看看哪里出问题了哇?QAQ~~
~~脚本猫不报错,我就改用油猴脚本了,报错这个~~
!(data/attachment/forum/202208/24/122551alr2myyl6rl62e6z.png)
~~我把4.13的油猴脚本删了,重下了个4.16.1的在网页的右上角,油猴脚本里没有我的这个脚本,很奇怪哦~~
!(data/attachment/forum/202208/24/125723a2j2q3xxqzevhvvj.png)
~~我查到一个方法https://blog.csdn.net/sandalphon4869/article/details/112132749(←他写串行了),突然想起来您在发布库的帖子里告诉我的写法,写上这句,就不报错了,但是替换还不生效,F12里没有红色报错,右上角油猴的图标里甚至没有我的JS那行~~
!(data/attachment/forum/202208/24/131401ojuxy7bfh7onfn2w.png)
代码如下
```
const xuanzeqi =
//【卡片
'a>.name,'+
//列表里的卡名
//===点开卡片的
'.name,'+
//卡名
'.effect p,'+
//能力
'>.data,'+
//国家
'li.type span,'+
//类型+种族、指令类型那行
//稀有度li.rarity(未使用)
//【UI
//===上边栏
'#dulstMenu a,'+
//上边栏按钮
//===登入前首页
'.playNowLanding,'+
//正中间的免费开玩按钮.playNowLanding
'.coins .unit,'+
//右上角游戏币单位.coins .unit
//===登入后首页
'.gameInfo>.tagline,'+
//标语第1行
'.gameInfo>.title,'+
//标语第2行
'.gameInfo>.description,'+
//标语第3行
'#play,'+
//下方开始游戏按钮
'#gameDashboard>.callToAction>.button'
//下方卡片列表按钮
;
const getwenben = new ElementGetter();
getwenben.each(xuanzeqi, document, p => {
if (p.innerText in fanyi) {
p.innerText = fanyi;
}
});
})();
```
~~我把这一大堆换行的const xuanzeqi =删了,下面getwenben.each(后面就一个'#dulstMenu a',右上角插件图标也出不来JS开关那行,代码里也不提示我哪里有问题~~
!(data/attachment/forum/202208/24/131835vrsztccb2z0rv3us.png)
40252492
发表于 2022-8-24 17:24:05
本帖最后由 40252492 于 2022-8-24 18:34 编辑
> 本帖最后由 40252492 于 2022-8-24 17:56 编辑
> 本帖最后由 40252492 于 2022-8-24 17:55 编辑
> 本帖最后由 40252492 于 2022-8-24 17:32 编辑
大佬大佬,我又遇到一个问题呀,https://dulst.com/overdulst
这个网页右上角的登录按钮点开,弹窗里的这个Login按钮,为啥没有文本啊,难道它是一张图片吗?
我看到value="Login",这是赋值吗?这个能用选择器写出来吗?修改<>里面的参数的值
!(data/attachment/forum/202208/24/171850g534knbfxnvz545m.png)
还有像这样的,输入框里面显示的内容,也是在<>里面的,是不是需要用别的函数了?
!(data/attachment/forum/202208/24/183317al2tnh1n6y56z2n6.png)
~~完了之后,还有一个小问题,您写的库,each(selector[, parent], callback)中的selector选择器的引号内的结尾,是否可以有逗号?~~
~~因为我把选择器写成竖向,结尾要往下加,很容易忘记续逗号~~
~~简单来说就是,选择器的引号里可以写成这样吗?~~
~~'选择器1,选择器2,选择器3,'←这里,结尾是个逗号~~
我自己试试不就好了
好吧,多个选择器的结尾不能有逗号,否则报错,反正还得续加号,自己上点心吧\~Q3Q