对不起,我是javascript的新手。
我想将id选择器作为参数传递给click事件,如下所示:
我试过了:
<button onclick="mycustomfunction(document.getElementById('someTextId'))"/>
并使用jquery:
<button onclick="mycustomfunction($('#someTextId').val())"/>
mycustomfunction(control)
{
// do something with the control
}
有人可以帮我理解我哪里出错吗?
答案 0 :(得分:1)
在事件处理函数中执行document.getElementById()
调用并传入id字符串
<button onclick="mycustomfunction('someTextId')"/>
function mycustomfunction(controlId) {
var control = document.getElementById(controlId);
// now work with control
}
答案 1 :(得分:1)
<button onclick="mycustomfunction($('#someTextId').val())"/>
- 这将传递该值。你最终得到了一个字符串。
<button onclick="mycustomfunction(document.getElementById('someTextId'))"/>
- 这会将对象尊重传递给DOM元素。从这里你可以做到:
mycustomfunction(element) {
alert(element.value)
}
答案 2 :(得分:1)
您尝试获取的值与按下的按钮无关。只需从按钮中删除该引用即可,并执行以下操作:
<button onclick="mycustomfunction()"/>
<script>
function myscustomfunction() {
var val = $('#someTextId').val(); // must be an input field for val() to work otherwise use html() or text()
// do other stuff
}
</script>
或者如果你真的想让jQuery更友好:
<button id="cool_button" />
<script>
$('#cool_button').click(function() {
var val = $('#someTextId').val(); // must be an input field for val() to work otherwise use html() or text()
// do other stuff
});
</script>
如果正确完成,你会发现jQuery的一个好处就是你可以开始从HTML结构中删除事件处理程序逻辑。