如何在jQuery中获取函数调用的div的ID?

时间:2009-06-14 17:17:30

标签: javascript jquery variables

我有一个jquery函数('rater'),我这样说:

<div id="someID"></div>

<script type="text/javascript">
    $('#someID').rater({options});
</script>

我想获取ID(在这种情况下为'someID'),然后我可以在函数内部将其用作变量。

然后我用这样的东西:

if (??? == 'someID') { do something }

我该怎么做?

5 个答案:

答案 0 :(得分:5)

检索用于调用插件的选择器:

jQuery.fn.myPlugin = function() {
    alert( this.selector );
};

您可以将选择器作为jQuery对象的属性进行访问。

所以,如果我这样调用插件:

$('div #something').myPlugin();

然后会提示“div #something”。


从插件中检索元素的ID:

jQuery.fn.myPlugin = function() {
    alert( this.attr('id') );
};

答案 1 :(得分:4)

不确定你为什么要这样做,但是......

// create jQuery plugin method: "rater"
jQuery.fn.rater = function() 
{
  // `this` is a jQuery object: process each matched element
  return this.each(function()
  {
    // `this` is a single matched element. Process it, somehow...
    if ( this.id == "someID" )
    {
      // do something special
    }

    // normal rater logic, whatever that might be
  });
};

答案 2 :(得分:1)

您在寻找selector吗?

再次阅读您编辑过的问题之后,听起来好像您想要传递id的字符串。

<div id="someID"></div>

<script type="text/javascript">
    $("#someID").rater({options},$("#someID").selector);
</script>

为了提高效率,如果您愿意,可以将$(“#someID”)存储在变量中,这样您只需执行一次查询。

答案 3 :(得分:1)

这将查找最近的“div”,然后获取其属性。

if ($(this).closest("div").attr("id") == "someId") {
    // do stuff
}

答案 4 :(得分:0)

if( $(this).attr('id') == 'someID' ) {
  // do stuff
}