在使用 jQuery 和“tamtam”编写 GreaseMonkey 脚本时,我的脑海中出现了一个问题。
有一个页面(我无法编辑)有 <select>
具有四个选项的元素。选项 2 已预先选择。
<select id="idname" name="namename">
<option>Option1</option>
<option selected="selected">Option2</option>
<option>Option3</option>
<option>Option4</option>
</select>
现在我想在选择 Option1 时调用脚本。 Option1 通向我想要插入脚本的另一个站点。
我该如何写这样的内容:
if (Option1 is selected) {
perform the script
}
像下面这样的东西可以工作吗?
if(document.getElementById("idname").getElementsByTagName("option")[0].onselect == true){
perform the script
}
如果没有,您可以发布一个引用资料来帮助我吗?
编辑
我能够创建一个函数和一个事件处理程序。
function myCompute(Event) {
with (this) {
var myTest = value;
if (value == "option1") {
$("#tabelle").show();
}
else {
$("#tabelle").hide();
}
}
}
事件处理程序:
$("#option-type").change (myCompute);
$("#tabelle").hide();
其工作原理如下: 通过选择选项 2,3 或 4,表格将被隐藏。通过选择选项 1,将显示表格。 通过访问该站点,大多数情况下都会选择选项 2,并且不会显示任何内容。 现在我得到的情况是,通过访问该站点选择了选项 1,并且也没有出现表格。我的想法是,当预选 option1 时应该显示该表。我认为缺少 EventHandler。 就像你一样,布洛克·亚当斯说。
$("#option-type option:first").select (myCompute);
$("#option-type").change (myCompute);
$("#tabelle").hide();
如果我将函数与 $("#tabelle").hide();
绑定(bind),该表从一开始就是隐藏的。通过将选项更改为 option1,将显示该表。如何在选择选项 1 时显示表格以及在选择选项 2、3、4 时如何隐藏表格?
尝试option:first
导致“未知伪元素”错误。
最佳答案
更新:
好的,如果我理解修改后的问题,代码现在可以按预期工作,除非选项 1 按选择启动。 (PS,应该编辑给定代码的 ID 以匹配。)
如果这是真的,那么只需更改这一行:
$("#tabelle").hide();
.
对此:
if ($("#option-type")[0].selectedIndex == 0 )
$("#tabelle").show();
else
$("#tabelle").hide();
<小时/>
在 Greasemonkey 中,由于沙箱保护,您无法以这种方式设置事件处理程序。请参阅Common Pitfalls in Greasemonkey .
此外,使用 jQuery,有更简单的方法来选择该元素。
类似于: $("#idname option:first").select (YourEventHandler)
应该可以。
地点:
function YourEventHandler (Event)
{
//YOUR CODE HERE
//Note: Event is a variable passed automatically to all event handlers, you often just ignore it.
}
关于javascript - 每当选择特定的 <选项> 时,就从 Greasemonkey 脚本更改页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179319/