0

我遇到了另一个 javascript 问题,
我的代码由两部分组成

首先是一个简单的下拉菜单:

<select>
    <option name="1">1</option>
    <option name="2">2</option>
    <option name="3">3</option>
</select>

找到一个简单的 div:

<div onClick="doThis('1');">Execute 1</div>

My script currently changes the innerHTMLof the div when a certain option is selected, but now I need it also to change the onClickfunctions value.

意思是,如果我选择选项3,javascript 应该看起来onClick="doThis('3');

我知道如何使用 javascript 更改大多数属性,但不知道如何使用另一个 javascript 函数更改 javascript onClick 属性。我用谷歌搜索了它,但没有想到。

那么,如何做到这一点呢?

感谢所有帮助,
谢谢。

4

3 回答 3

2

不要使用内联 javascript 事件。您正在混合功能代码 (javascript) 和演示代码 (HTML),这是一种反模式。如果您正确区分这些问题,答案就会变得有些微不足道:

HTML:

<select id="someSelect">
    <option name="1">1</option>
    <option name="2">2</option>
    <option name="3">3</option>
</select>

<div id="someDiv">Execute</div>

JavaScript:

document.getElementById('someDiv').onclick = function () {
    var select = document.getElementById('someSelect');
    var number = select.value;

    doThis(number);
};

http://jsfiddle.net/jbabey/HzVd7/

于 2012-09-11T13:24:40.557 回答
0

在大多数 JavaScript 任务中,您不需要更改 onClick 属性。相反,如果你知道'3'你的场景在某个时候会发生变化,那么一开始就不应该将它硬编码到函数调用中;使其成为变量,或使用函数获取它:

<div id="someDiv" onclick="doThis(getValue());">
于 2012-09-11T13:25:51.550 回答
0

您可以使用 jquery 库http://docs.jquery.com/Downloading_jQuery。然后通过这种方式挂起事件onsubmit:

$('div').click(function(){
  doThis($("select#someSelect").val());
})
于 2012-09-11T13:30:47.560 回答