[object Object]和[object HtmlDivElement]之间的区别。 Div玩jQuery

时间:2012-03-20 10:52:23

标签: jquery object html radio

我正在使用像单选按钮这样的div,并有一个问题。

我声明了一个像这样的函数和变量

我设置了两个样式,一个.buttonUp和.buttonDown应用于div的onclick事件。

<script type="text/javascript">
var onCheck;

function setRadio(param_ElementRef) 
{
    if (param_ElementRef != onCheck) 
    {
        if (onCheck) 
        {
            onCheck.className = 'buttonUp';
        }
        param_ElementRef.className = 'buttonDown';
        onCheck = param_ElementRef;
    }
}
</script>

我像这样调用div中的函数

<div id="Yes" class="buttonUp" onclick="setRadio(this)">Yes</div>
<div id="No" class="buttonUp" onclick="setRadio(this)">No</div>
<div id="Maybe" class="buttonUp" onclick="setRadio(this)">Maybe</div>

这很好用,但我在为onCheck变量设置默认值时遇到了问题。

我尝试过提供div的ID,但是当我alert($('#Yes')显示[object Object]时,如果我alert(param_ElementRef)则显示[object HtmlDivElement]

这两者之间显然存在差异,是否有一种通过id引用或类似方式返回相同对象的方法?

非常感谢

2 个答案:

答案 0 :(得分:5)

alert($('#Yes')显示[object Object]的原因是因为它是一个jQuery对象。

另一方面,如果您想要[object HtmlDivElement]返回,请尝试alert(document.getElementById('Yes'))而不是alert($('#Yes'))

您还可以使用get()

从jQuery对象获取普通js对象

例如。 提醒($('#Yes'))显示[object Object],如果您尝试alert($('#Yes').get(0)),您将获得[object HtmlDivElement]

答案 1 :(得分:2)

为div选项

添加其他类
<div id="yes" class="button buttonUp">Yes</div>
<div id="no" class="button buttonUp">No</div>
<div id="maybe" class="button buttonUp">Maybe</div>

这是用于选择选项

的jQuery代码
var option;
$('.button').click(function() {
    option = $(this).attr('id');
    $('.selected').html('Your option - ' + option);
    $(this).addClass('buttonDown').removeClass('buttonUp');
});​

检查jsFiddle http://jsfiddle.net/prasofty/zWjjk/

中的示例代码