这不是$(这个)

时间:2011-01-20 13:30:47

标签: javascript jquery jquery-selectors

在jQuery中确定如此;

我有一个选择器$("#gmap")

我想在我的选择器的上下文中做很多代码。我一直懒惰并使用.each(),即使只有其中一个。

$("#gmap321654987789").each(function(){
 $(this).....
});

这特别有效吗?我讨厌感觉不对的代码。

是否存在说...或类似的机制。

$("#gmap321654987789").this(function(){
 $(this).....
});

6 个答案:

答案 0 :(得分:2)

如果他们只有一个(应该是因为你是通过id选择),你可以链接方法$("#gmap").val("new").attr('someattr','')等。

答案 1 :(得分:1)

你可以:

var myElement = $("#gmap321654987789");
myElement....

答案 2 :(得分:1)

只需缓存对象并像平常一样使用它:

var $gmap = $('#gmap321654987789'); // Get your jQuery object
console.log($gmap);
console.log($gmap.text());

答案 3 :(得分:0)

您也可以在JS中尝试“with”,这样您就可以专注于对象的属性。

答案 4 :(得分:0)

试试这个(未经测试的)

(function($){
    $.fn.me = function(func) {
        func.call(this[0]);
        return this;    
    }
})(jQuery);

并使用:

$("#gmap321654987789").me(function(){
    this.innerHTML = 'edited';
}).css('border')....

答案 5 :(得分:0)

也许是功能模式?也许您可以将实现减少到一个或多个方法,甚至只需一个参数化方法。

$.fn.doThingsToAMap = function() {
    $(this).doThis();
    $(this).doThat();
    return this;
};


$("#gmap321654987789").doThingsToAMap();