@Moob approssimazione a jQuery attrBegins plug-in, restituisce il nome dell'attributo (una stringa), quando sono partite ... di un singolo elemento (ignorando più corrispondenze). Ho aggiunto il codice per restituire una raccolta JQuery con gli elementi corrispondenti.
Ecco il codice:
(function($) {
$.fn.attrBegins = function(s) {
var matched = [];
this.each(function(index) {
var elem = this;
$.each(this.attributes, function(index, attr) {
if(attr.name.indexOf(s)===0){
matched.push(elem);
}
});
});
return $(matched);
};
})(jQuery);
esempio d'uso ...
HTML:
<div>
<div data-pet-dog></div>
<div data-pet-cat></div>
</div>
Javascript:
var foo = $("div").attrBegins("data-pet");
// results into... foo = [ <div data-pet-dog></div> , <div data-pet-cat></div> ]
NOTA: per evitare problemi di prestazioni quando elementi Selezione wich avere un nome attributo che inizia con una stringa personalizzata utilizzando attrBegins, è consigliato per restringere il più possibile il selettore originale, per ridurre la raccolta di elementi da iterare. attrBegins filtra semplicemente la raccolta di elementi preselezionati, non esplora gli elementi secondari dell'insieme di elementi fornito.
Cosa succede se si dispone di più attributi che iniziano con 'data-'? Quale valore dovresti ottenere? –
jQuery ha un inizio con selettore: http://api.jquery.com/attribute-start-with-selector/ – Moob
Nel mio scenario ne ho solo uno .. quindi se potessi selezionare il nome dell'attributo iniziando con 'data-', che dovrebbe fare – user3111581