0

我有一个简单的JavaScript函数,我试图获取用于启动该函数的元素的 ID。我的元素很简单DIV

<script type="text/javascript" >
    function updateProduct(prod_id,old_q){
        alert(jQuery(this).attr('id'));
    }   
</script>

<div id="button_container" style="float:left; margin-right:7px; margin-top:3px;  width:59px; height:20px; cursor:pointer;" onClick="updateProduct('19','3060');">

此页面上还有其他 HTML 元素(当然),但现在这是一个测试按钮,没有其他元素具有与我在这里称为button_container. 正如你所见,我Script的也是独立的。它不是更长的Script等等的一部分。我错过了一些超级简单的东西吗?警报返回“未定义”并且Console不报告任何警告或错误...

4

2 回答 2

2

您的this函数中的 是全局对象window

您需要将其传递给函数。

function updateProduct(prod_id,old_q, element){
    alert(element.id);
}   

<div id="button_container"  onClick="updateProduct('19','3060', this);">
于 2013-01-31T01:58:23.047 回答
0

您需要传递元素对象。

<script type="text/javascript" >
    function updateProduct(obj, prod_id,old_q){
      alert(jQuery(obj).attr('id'));
     }   
</script>
<div id="button_container" style="float:left; margin-right:7px; margin-top:3px;  width:59px; height:20px; cursor:pointer;" onClick="updateProduct(this, '19','3060');">
于 2013-01-31T02:00:34.797 回答