Filtruję klasy XHTML; Kiedy istnieje tylko jedna klasa wkłada przecinek na początku. To sprawia, że klasy ukryte do wartości ", ukryte", które kończą się wyświetlając ukrytą zawartość. czego mi brakuje? Nie ma żadnych ram, nigdy ich nie używam.

var d = new Array();

for (var i=0;i<c.length;i++)
{
 if (c[i]==c1) {d.push(c2);}
 else if (c[i]==c2) {d.push(c1);}
 else if (c[i]!='') {d.push(c[i]);}
}

d.join(' ');
alert(d);
2
John 18 listopad 2011, 05:55

3 odpowiedzi

Najlepsza odpowiedź

D jest nadal tablicą po użyciu dołączania (). Przechowuj wynik połączenia () w zmiennej, aby uzyskać wynikowy ciąg:

joined=d.join(' ');
alert(joined);
2
Dr.Molle 18 listopad 2011, 02:08

Prawdopodobnie masz Array, z których znajduje się undefined, null lub pusty ciąg jako pierwszy członek, który ma toString() nazwał gdzieś (być może niejawnie), który wywołuje swój join(), a domyślny stolarka jest przecinkiem (,), co powoduje ciąg z przecinkiem na początku.

>>> [null,'hidden'] + '';
",hidden"
1
alex 18 listopad 2011, 02:01

Możesz użyć czegoś takiego:

if (d.length == 1) {
    alert(d[0].substr(1, d[0].length));
}

Aby oczyścić pierwszy znak.

0
Daniel Jäger 18 listopad 2011, 02:01