gpt4 book ai didi

javascript - 'this.value' 实际上可以在触发事件的函数调用中成功使用吗?

转载 作者:行者123 更新时间:2023-12-03 12:32:18 24 4
gpt4 key购买 nike

我放弃了!来自 W3C Web 示例,“开始 Web 编程HTML、XHTML 和 CSS”,作者:Jon Duckett,“DOM 脚本 - 使用JavaScript 和文档对象模型 - 第二版”作者:JeremyKeith 和 Jeffrey Sambells,《JavaScript 权威指南》作者:David Flanagan == ALL 建议,“this.value”可以作为参数传递给 JavaScript 函数。

这是触发器:

<td id="yearOfDraw">
<select id="selectedYear" onchange="storeValue('y', this.value)">;
<option selected="selected" value="">Select Year
</option>
<script type="text/javascript">
yearOption();
</script>
</select>
</td>

...以上以及以下,我都尝试过,但没有成功;

storeValue() 作为库函数 == 传递了文字“y”,但是不是这个值。

head 元素中的 storeValue() == 相同的结果...

更改选项:

    onchange="storeValue('y', " + this.value)>;  // breaks the code.
onchange="storeValue(this.value, 'y')">; // this.value is not passed.
onchange="storeValue(this.value)">; // ...nothing is passed
onchange="storeValue(alert('this.value is: ', this.value)">; //displays \
the value selected, just doesn't pass it to the function.

(来自“stackoverflow-JavaScript 将参数 this.value 传递给函数”)

    onchange="storeValue('y', " + this.options[this.selectedIndex].value)>; // breaks the code.

我不认为“范围界定”是一个问题,因为“this”将是一个指向Element 对象,选择,因此,全局“范围内”到被调用的功能。但这个假设并不能解释问题。一样,如何将“this.value”设为全局范围?

有什么想法吗?

谢谢,丛林蓝

最佳答案

我更愿意发表评论,但没有足够的代表。 :)

无论如何,您似乎是通过 JavaScript 填充选项。如果是这种情况,storeValue 不知道 DOM 中填充的额外选项,因为 yearOption() 仅在页面加载后填充 DOM。

但是,如果您首先要拥有所有选项,或者在 yearOption() 填充 DOM 之后绑定(bind) storeValue,则可能使用匿名函数,它可能会起作用。

编辑

  1. 顺便说一句,这就是为什么我们使用像 jquery 这样的库,以便我们可以在加载 DOM 之后以一种非常简单的方式附加事件:)
  2. 此外,如果您只有一个选项(如示例中所示),则 onchange 不会触发...

yearOption() 到底是做什么的?看看这个 fiddle :http://jsfiddle.net/LsY3Y/1/

关于javascript - 'this.value' 实际上可以在触发事件的函数调用中成功使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com