2011-12-17 22 views
2

我覺得這個選擇格式繁瑣,如果我需要經常使用它:要擴展jQuery的通過名稱屬性來選擇更優雅

$('[name="someElementName"]').val() 

我想到了擴展jQuery的,這樣我可以使用的格式如下:

$('@someElementName').val() 

據我所知,jQuery只是遵循CSS的約定,我打破慣例。

關於「@」的選擇,我只是選擇了一個特殊字符,它似乎對選擇器沒有用處,並且不太可能產生衝突。如果有人有更好的建議,我願意接受建議。

我沒有選擇不使用name屬性作爲選擇器的一部分。

我想使用這樣的正則表達式:

selectorString.replace(/\@([\d\w\s\-]*)/g, '[name="$1"]') 

從這裏我被困如何擴展jQuery來利用該正則表達式以這樣的方式,我可以使用代碼,如「$('@ 。someElementName「)VAL();

回答

2

如何:

(function($) { 
    $.named = function(name, context) { 
     context = context || document; 
     return $(context.getElementsByName(name)); 
    } 
})(jQuery); 

用法:

$.named('foo').val(); 

http://jsfiddle.net/alnitak/n6nEW/

+0

好主意':)' – 2011-12-17 14:44:05

+0

考慮其上下文作爲一個可選的第二個參數... – 2011-12-17 14:45:50

+0

@ŠimeVidas做 – Alnitak 2011-12-17 14:48:12

相關問題