如何在click事件上传递document.getElementById(“someid”)

时间:2013-02-22 21:09:19

标签: javascript jquery jquery-ui javascript-events

对不起,我是javascript的新手。

我想将id选择器作为参数传递给click事件,如下所示:

我试过了:

<button onclick="mycustomfunction(document.getElementById('someTextId'))"/> 

并使用jquery:

<button onclick="mycustomfunction($('#someTextId').val())"/> 


mycustomfunction(control)
{
// do something with the control
}

有人可以帮我理解我哪里出错吗?

3 个答案:

答案 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结构中删除事件处理程序逻辑。