【问题标题】:Difference between [object Object] and [object HtmlDivElement]. Div play with jQuery[object Object] 和 [object HtmlDivElement] 之间的区别。用 jQuery 玩 Div
【发布时间】:2012-04-04 20:00:57
【问题描述】:

我正在使用单选按钮之类的 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引用或者类似的方式返回同一个对象?

非常感谢

【问题讨论】:

  • alert($('#Yes') 显示 [object Object] 的原因是因为它是一个 jQuery 对象。另一方面,如果您希望返回 [object HtmlDivElement],请尝试使用 alert(document.getElementById('Yes')) 而不是 alert($('#Yes')
  • 哇!杰出的!谢谢你。我的印象是 $ 和 document.getElementbyId 是一回事。我错了!谢谢!
  • 发表评论作为答案并添加了更多内容
  • 如果要将[object HtmlDivElement] 或其他HTML 元素转换为[object Object] 元素以供JQuery 使用,请将$() 包裹在变量周围,例如$(myHtmlVariable)

标签: jquery object html radio


【解决方案1】:

为选项的 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/

【讨论】:

    【解决方案2】:

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

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

    你也可以使用get()从一个jQuery对象中获取纯js对象

    例如。 alert($('#Yes')) 显示[object Object],如果你尝试alert($('#Yes').get(0)),你会得到[object HtmlDivElement]

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多