Javascript 如何编辑HTML<;选择>;有油腻感的元素?

Javascript 如何编辑HTML<;选择>;有油腻感的元素?,javascript,drop-down-menu,greasemonkey,html-select,Javascript,Drop Down Menu,Greasemonkey,Html Select,有一个叫做“口袋妖怪决战”的口袋妖怪战斗模拟器。客户端是封闭源代码的,因此我无法向服务器添加层。我想编辑最后的战斗下拉列表来添加一层 我想改变: 随机战斗(额定) 无等级随机战斗 其他指定用途(额定) 上限(额定值) 优步(评级) UU(额定值) RU(额定值) NU(额定值) 信用证(额定) 哈克蒙特(额定) 平衡哈克蒙特(额定) Glitchmons(额定) 致: 随机战斗(额定) 无等级随机战斗 其他指定用途(额定) 上限(额定值) 优步(评级) UU(额定值) RU(额定值) NU

有一个叫做“口袋妖怪决战”的口袋妖怪战斗模拟器。客户端是封闭源代码的,因此我无法向服务器添加层。我想编辑最后的战斗下拉列表来添加一层

我想改变:


随机战斗(额定)
无等级随机战斗
其他指定用途(额定)
上限(额定值)
优步(评级)
UU(额定值)
RU(额定值)
NU(额定值)
信用证(额定)
哈克蒙特(额定)
平衡哈克蒙特(额定)
Glitchmons(额定)
致:


随机战斗(额定)
无等级随机战斗
其他指定用途(额定)
上限(额定值)
优步(评级)
UU(额定值)
RU(额定值)
NU(额定值)
PU(未评级)
信用证(额定)
BW杯(未分级)
哈克蒙特(额定)
平衡哈克蒙特(额定)
Glitchmons(额定)
(在选定位置插入2个

好的,尝试:

var opt = document.createElement("option");

var content = document.createTextNode("PU (unrated)");
opt.appendChild(content);

var attr = document.createAttribute("value");
attr.nodeValue = "pu";
opt.setAttributeNode(attr);

var targetEl = document.getElementById("lobby-format");
targetEl.appendChild(opt);

这将只增加一个选项,但我想你明白了。下面是一个脚本,它使用jQuery(已测试)的强大功能在目标点添加选项:

/==UserScript==
//@name\u在选定点添加新选项
//@包括http://play.pokemonshowdown.com/*
//@包括http://jsbin.com/azeveh*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
//==/UserScript==
var selectNode=$(“#大厅格式”);
选择node.find(“选项[value='nu']”)
.在('PU(未评级)'之后);
选择node.find(“选项[value='lc']”)
.(‘BW杯(未评级)’)之后;


OP的特定站点使用AJAX来添加
。要补偿AJAX,请使用
waitforkyellements
实用程序。像这样:

/==UserScript==
//@name\u在选定点添加新选项,如图所示。
//@包括http://jsbin.com/azeveh*
//@包括http://play.pokemonshowdown.com/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
//@需要https://gist.github.com/raw/2625891/waitForKeyElements.js
//==/UserScript==
WaitForkEyements(“#大厅格式选项[value='nu']”,AddOption_1);
WaitForkEyements(“#大厅格式选项[value='lc']”,AddOption_2);
函数AddOption_1(jNode){
jNode.after('PU(未评级)');
}
函数AddOption_2(jNode){
jNode.after(‘BW杯(未评级)’);
}

其实没什么,我的javascript也失败了。我只是在谷歌上搜索“用greasemonkey更改html选择元素”。如果有人至少有一些脑细胞编写了该服务器软件,那么对该请求的修改将毫无效果,因为参数将被检查是否有有效的输入,我想你的不是。别浪费你的时间了。事实上,我正在托管服务器。我可以添加一个层,我只是不能搜索它,因为我不能编辑客户,我什么都没做。有没有一种方法可以把这段html编辑成,这段html?这是我想添加到的页面,顺便说一句,是的,因为整个页面都使用ajax。以Firefox或Chrome为例,打开页面,等待下拉列表出现,将代码粘贴到js控制台,然后按enter键。将添加该选项,但选择该选项后,会执行大量Javascript,产生多个错误。你不能仅仅通过添加这个选项来破解这个问题,对不起…顺便说一句:在右上角有一个很大的“报告错误”链接。如果缺少这个功能,为什么不使用它呢?js控制台?对不起,我没用。嗯,没用。我将尝试重新启动firefox,还有什么我需要做的吗?如果它停止工作,你的页面将与问题中指定的页面不同。URL是否仍与
@include
指令匹配<代码>https?select是否仍然具有该id和这些选项?代码工作正常,正如预期的那样。但该网站使用(缓慢的)AJAX。补偿AJAX是一个全新的问题,但请参见更新的答案。(请注意:始终声明页面是否使用AJAX作为感兴趣的代码!)