2017-06-04 2 views
1

Ich habe einige Zeilen in einer Tabelle wie der Code unten und ich möchte nach ein paar Sekunden den Inhalt von td 's verstecken (ich habe sie mit Text in einer Schleife gefüllt) . Mein Beispielcode ist diesjQuery Wie alle Bereiche mit td in einer Tabelle zu verstecken

setTimeout(function() { 
    $('span').each(function(index, el) { 
     $(this).hide();//nothing happens 
    }); 
}, 5000); 


<tr> 
    <span class="myspan"><td></td></span> 
    <span class="myspan"><td></td></span> 
    <span class="myspan"><td></td></span> 
    <span class="myspan"><td></td></span> 
</tr> 

ich auch andere Wege versucht, mit, wie das Speichern aller span s zu einem Array oder die Klasse auswählen und sie zu verstecken.

var arr=$('span'); 
for (var i=0;i<arr.length;i++){ 
    arr[i].css('visibility','hidden'); 
} 

aber die gleiche Sache passiert ist. Ich möchte in der Lage, den Inhalt von td ‚s ein- und ausblenden, wenn es ohne sich zu verstecken die Grenze benötigt, wenn es möglich ist,

+4

Schauen Sie sich Ihr DOM an; unabhängig vom HTML gibt es keine '' Elemente im DOM, die die' ' Elemente umschließen; Es ist ungültiges HTML: Wenn Sie ein '' in einem '

' wollen, muss dieses '' in entweder ' 'oder'
'eingeschlossen werden. –

+0

Sie können kein "span" -Element als untergeordneten Knoten eines "tr" -Elements haben und ein "td" -Element kann nichts anderes als ein "tr" -Element als übergeordneter Knoten haben. –

+0

Ich wollte den Inhalt von td verbergen und in der Lage sein, sie wieder zu zeigen, das ist, weil ich diese Methode dachte. Ich habe viele Dinge ohne Erfolg ausprobiert. Könntest du etwas vorschlagen? :) –

Antwort

-1

Um alle nach 5 Sekunden zu verbergen, können Sie den folgenden Code

setTimeout(function() { 
$('table tr span').hide(5000); 
}, 5000); 

verwenden oder

setTimeout(function() { 
    $('table tr span').css('visibility','hidden'); 
}, 5000); 
0

können Sie einfach jedes Element in Td-Tag aus der Tabelle verwenden. ansonsten Browser konvertieren Sie Ihren Code in gültigen Code. Ausgang Ihre HTML wie in Browser ist:

<body> 
    <span class="myspan"></span> 
    <span class="myspan"></span> 
    <span class="myspan"></span> 
    <span class="myspan"></span> 
    <table> 
     <tbody> 
      <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     </tbody> 
    </table> 
</body> 

Sie Spanne wählen, aber es ist nicht mehr td in Ihrer Zielspanne. SO ist deine Wahl falsch.

müssen Sie yor HTML ändern:

<tr> 
    <td><span class="myspan"></span></td> 
    <td><span class="myspan"></span></td> 
    <td><span class="myspan"></span></td> 
    <td><span class="myspan"></span></td> 
</tr> 

jetzt können Sie es auswählen und tun Sie Ihre Funktion:

var arr=$('span'); 
arr.css('visibility','hidden'); 

oder

var arr=$('span'); 
arr.hide(); 

später Show Yor es:

att.show(); 

Sie brauchen nicht für oder irgendeine Schleife. Wählen Sie einfach Ihr Ziel und sagen Sie, was Sie tun möchten. JQuery macht es für jeden in Ihrem Selektor (genau wie eine Schleife)

Verwandte Themen