Selettore valore-attributo senza distinzione tra maiuscole e minuscole con Jquery

Devo ottenere il valore dell’attributo content di un determinato meta tag.

 var someContent = $("meta[name=someKindOfId]").attr("content"); 

è come lo faccio di solito. Per motivi aziendali, someKindOfId potrebbero essere di somekindofid . Potrebbe essere anche altre combinazioni di casi. Non lo so.

Qual è il modo migliore per cercare questo meta tag? Aggiungere un ID o un altro identificatore è fuori questione.

Potresti usare la funzione filtro jQuery in questo modo

 var meta = $('meta[name]').filter(function() { return this.name.toLowerCase() == 'somekindofid'; }); 

Basato sul selettore CSS non sensibile al maiuscolo / minuscolo per gli attributi

http://jsfiddle.net/nickywaites/mkBvC/

Inoltre, per l’attributo senza distinzione tra maiuscole e minuscole * = selettore:

 $("meta[name*=someKindOfId]") 

Puoi usare:

 $('meta').filter(function() { return (/somekindofid/i).test($(this).attr('name')); }).attr("content") 

Cosa ne pensi di questo?

Puoi riutilizzare l’ espressione jQuery senza distinzione tra maiuscole e minuscole, come mostrato nello snippet seguente (eseguilo per vedere come la prima div corrisponde, mentre la seconda no).

 $.expr[':'].iAttrContains = function(node, stackIndex, properties){ var args = properties[3].split(',').map(function(arg) { return arg.replace(/^\s*["']|["']\s*$/g, ''); }); if ($(node).attr(args[0])) { //exact match: return $(node).attr(args[0]).toLowerCase() == args[1].toLowerCase(); //if you actually prefer a "contains" behavior: //return -1 !== $(node).attr(args[0]).toLowerCase().indexOf(args[1].toLowerCase()); } }; $("div:iAttrContains('data-name', 'test')").addClass('matched'); 
 div{background:red;} div.matched{background:green;} 
  
First div
Second div