Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每当出现特定的<;选项>;被选中_Javascript_Jquery_Greasemonkey - Fatal编程技术网

Javascript 每当出现特定的<;选项>;被选中

Javascript 每当出现特定的<;选项>;被选中,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,在使用jQuery和“tamtam”编写GreaseMonkey脚本时,我想到了一个问题 有一个页面(我无法编辑)有一个带有四个选项的元素。选项2已预选 <select id="idname" name="namename"> <option>Option1</option> <option selected="selected">Option2</option> <option>Option3</opti

在使用jQuery和“tamtam”编写GreaseMonkey脚本时,我想到了一个问题

有一个页面(我无法编辑)有一个带有四个选项的
元素。选项2已预选

<select id="idname" name="namename">
  <option>Option1</option>
  <option selected="selected">Option2</option>
  <option>Option3</option>
  <option>Option4</option>
</select>
你想做以下工作吗

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,并且没有出现任何表。我的想法是,在预选选项1时应显示表格。。我认为缺少一个事件处理程序。 布罗克·亚当斯说,就像你一样

$("#option-type option:first").select (myCompute);
$("#option-type").change (myCompute);
$("#tabelle").hide();
如果我用
$(“#tabelle”).hide()绑定函数,表格从一开始就被隐藏。通过将选项更改为选项1,将显示表格。选择选项1时如何显示表格,选择选项2、3、4时如何隐藏表格

尝试
选项:首先
会导致“未知伪元素”错误。

您可以使用获取所选元素,如下所示:

if(document.getElementById("idname").selectedIndex === 0) { //option 1
  //perform the script
}
document.getElementById("idname").onchange = function() {
  if(this.selectedIndex === 0) {
    //perform the script
  }
};
它是一个基于0的索引,因此在您的示例标记中,0是选项1


我不清楚这个问题,但如果您想在
更改
事件中使用此选项,它将如下所示:

if(document.getElementById("idname").selectedIndex === 0) { //option 1
  //perform the script
}
document.getElementById("idname").onchange = function() {
  if(this.selectedIndex === 0) {
    //perform the script
  }
};
.

您可以使用来获取所选内容,如下所示:

if(document.getElementById("idname").selectedIndex === 0) { //option 1
  //perform the script
}
document.getElementById("idname").onchange = function() {
  if(this.selectedIndex === 0) {
    //perform the script
  }
};
它是一个基于0的索引,因此在您的示例标记中,0是选项1


我不清楚这个问题,但如果您想在
更改
事件中使用此选项,它将如下所示:

if(document.getElementById("idname").selectedIndex === 0) { //option 1
  //perform the script
}
document.getElementById("idname").onchange = function() {
  if(this.selectedIndex === 0) {
    //perform the script
  }
};

.

更新:

好的,如果我理解了修改后的问题,代码现在按预期工作,除非选项1按所选开始。(另外,应编辑给定代码的id以匹配。)

如果这是真的,那么只需更改这一行:

$("#tabelle").hide();
.
为此:


在Greasemonkey中,由于沙盒保护,您不能这样设置事件处理程序。请参阅。
此外,使用jQuery,还有更简单的方法来选择该元素

类似于:
$(“#idname选项:first”)。选择(您的事件处理程序)
应该可以工作

其中:

function YourEventHandler (Event)  
{
    //YOUR CODE HERE
    //Note: Event is a variable passed automatically to all event handlers, you often just ignore it.
}

.

更新:

好的,如果我理解了修改后的问题,代码现在按预期工作,除非选项1按所选开始。(另外,应编辑给定代码的id以匹配。)

如果这是真的,那么只需更改这一行:

$("#tabelle").hide();
.
为此:


在Greasemonkey中,由于沙盒保护,您不能这样设置事件处理程序。请参阅。
此外,使用jQuery,还有更简单的方法来选择该元素

类似于:
$(“#idname选项:first”)。选择(您的事件处理程序)
应该可以工作

其中:

function YourEventHandler (Event)  
{
    //YOUR CODE HERE
    //Note: Event is a variable passed automatically to all event handlers, you often just ignore it.
}

.

你好,尼克·克雷弗,谢谢你帮助我。就像Brock Adams说的那样,我不能这样设置事件处理程序。但是你指示我;-)你好,尼克·克雷弗,谢谢你帮我。就像Brock Adams说的那样,我不能这样设置事件处理程序。但是你指示我;-)你好,布罗克,我希望我没有完全看不见你:(所以,我能够创建一个功能和一个运行良好的事件处理程序。我编辑了我的第一篇文章,以便你能看到我的方式,也许(?)回答另一个问题。我不知道如何弥补。每一点都有助于我更好地理解它。非常感谢你。你好,布洛克,我希望我对你不是完全不屑一顾:(所以,我能够创建一个功能和一个事件处理程序,工作得很好。我编辑了我的第一篇文章,以便你能看到我的方式,也许(?)回答另一个问题。我不知道如何弥补。每一点都有助于我更好地理解它。非常感谢。问答网站也是如此。如果你有多个问题,它们应该分别发布。此外,问题不应该包含答案;你可以回答你自己的问题,也可以这样做。而问题可以(也应该)如果他们需要什么(例如澄清),可以编辑,它们不应被编辑为提出新问题,因为这会使现有答案无效并导致混乱。问答网站也是如此。如果您有多个问题,它们应该单独发布。此外,问题不应包含答案;您可以回答自己的问题,也可以这样做。而如果问题需要任何内容,则可以(并且应该)对其进行编辑(例如澄清),它们不应被编辑为提出新问题,因为它会使现有答案无效并导致混淆。