Danke Tilo, Das Array enthält dann dieses ["2013", "2013", "2012", "2012", "2012", "2011", "2010", "2010", "2009", "2008", "val"]
Edit fiddle - JSFiddle
sollte aber nur noch dass enthalten ["2013", "2012", "2011", "2010", "2009", "2008"]
Kriegt man das auch so hin?
Nachtrag: Das ist das fertige Script und kann in Wp eingefügt werden.
Es ermöglicht Beiträge nach Jahr auszugeben.
HTML-Code:
<script type="text/javascript">
/* <![CDATA[ */
function byId(id) {
return document.getElementById(id);
}
if(byId("posts-filter"))
{
// <summary>
// Sucht nach Select-Tag mit dem Name "m"
// und schreibt die Value´s der Otionen in ein Array
// </summary>
var optionElems = $('select[name="m"]').find('option[value!=0]');
var yearArray = [];
$.each(optionElems, function( index, value ) { yearArray[index] = $(this).attr('value').slice(0,4);});
// Doppelte Einträge entfernen
yearArray=unique(yearArray);//Funktionsaufruf
// <summary>
// Mit dieser Funktion werden sämtliche Einträge die mehrfach
// in einem Array vorhanden sind entfernt.
// </summary>
// <param name="origArr">[Array] original Array</param>
// <returns>[Array]Diese Methode gibt am Ende ein neues Array zurück,
// aus dem alle doppelten Einträge entfernt wurden. </returns>
var unique = function(origArr) {
var newArr = [], origLen = origArr.length,found,x, y;
for ( x = 0; x < origLen; x++ ) {
found = undefined;
for ( y = 0; y < newArr.length; y++ ) {
if ( origArr[x] === newArr[y] ) {
found = true;
break;
}
}
if ( !found) newArr.push( origArr[x] );
}
return newArr;
}
// <summary>
// Optionen Hinzufügen
// </summary>
i = 0;
while(i < yearArray.length)
{
$( "select[name='m']" ).append($(document.createElement("option")).
attr("value",yearArray[i]).text("Das Jahr "+yearArray[i]));
++i;
}
// Option nach aufruf selektieren
selected(location.search); //Funktionsaufruf
// <summary>
// Sucht eine Postvariable "m", bei true wird die Option im Select-Tag ausgewählt.
// </summary>
// <param name="string">[string] location.search </param>
function selected (string){
if (string == '') return;
var wert = string.slice(1);
var paare = wert.split("&");
var paar, name;
for (var i = 0; i < paare.length; i++) {
paar = paare[i].split("=");
name = paar[0];
if (name =="m") $("option[value="+paar[1]+"]").attr("selected","selected");
}
}
//console.log(yearArray);
}
/* ]]> */
</script>