我有一个jquery函数('rater'),我这样说:
<div id="someID"></div>
<script type="text/javascript">
$('#someID').rater({options});
</script>
我想获取ID(在这种情况下为'someID'),然后我可以在函数内部将其用作变量。
然后我用这样的东西:
if (??? == 'someID') { do something }
我该怎么做?
答案 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
}