2016-04-29 16 views
3

Wie kann ich den Wert des nächsten Elements (td) durch die Suche AnkertagHolen Sie sich das nächste Element eines Anchor

Ich habe diesen HTML Code

<TR> 
<TD> 
    <DIV align=center>4</DIV> 
</TD> 
<TD> 
    <DIV align=left> 
     <A href="sample.asp?list=1&amp;vote=1">Juan Dela Cruz</A> 
    </DIV> 
</TD> 
<TD>25</TD> 
</TR> 

und ich habe dieses Javascript

ändern
<SCRIPT> 
    setTimeout(function() { 
     var searchString = 'Juan Dela Cruz'; 
     var elements = document.getElementsByTagName('a'); 
     for (var i = 0; i < elements.length; i++) 
      if (elements[i].innerHTML.indexOf(searchString) !== -1) 
       elements[i].nextSibling.innerHTML = getRandomInt(200,250); 
    }, 200); 


    function getRandomInt(min, max) { 
     return Math.floor(Math.random() * (max - min + 1)) + min; 
    } 
</SCRIPT> 

Dann mag ich durch die Liste der Anker (a) Tag mit dem Namen ‚Juan Dela Cruz‘ suche .. es dann verwenden, um sein nächstes Element zu erhalten .. so dass ich den Wert 25 innerhalb td-Tages ändern kann

Suche Anker Tag mit diesem Namen funktioniert perfekt, ich habe nur ein Problem beim Abrufen des nächsten Elements ... Ich habe einen Fehler in .nextSibling .. kann jemand mir helfen, diesen Code zu beheben ?? Dank :)

+0

u den aktuellen ** td bekommen ** davon mit dem Namen mit ** Eltern ('td') ** und erhalten die nächste td mit * * next() ** – Abbr

Antwort

2

Sie können diese Schnipsel versuchen:

Hauptsache ist, dass Sie closest() über bekommen die nächste td Geschwister kümmern müssen. Diese closest("td") wird Ihr nächstes Elternelement td Element zurückgeben. Von dort können Sie Ihr nächstes td Element unter Verwendung next("td") erhalten.

Fiddle Demo

$(function() { 
 
    setTimeout(function() { 
 
    var searchString = 'Juan Dela Cruz'; 
 
    $("a").each(function() { 
 
     if ($(this).text() == searchString) { 
 
     $(this).closest("td").next("td")[0].innerHTML = getRandomInt(200, 250); 
 
     } 
 
    }) 
 
    }, 200); 
 

 
    function getRandomInt(min, max) { 
 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<table> 
 
    <TR> 
 
    <TD> 
 
     <DIV align=center>4</DIV> 
 
    </TD> 
 
    <TD> 
 
     <DIV align=left> 
 
     <A href="sample.asp?list=1&amp;vote=1">Juan Dela Cruz</A> 
 
     </DIV> 
 
    </TD> 
 
    <TD>25</TD> 
 
    </TR> 
 
</table>

+0

dieser funktioniert wie ein Charme :)) danke – john1717

+0

Willkommen. Sie können es als Antwort markieren, wenn das wirklich geholfen hat. –

Verwandte Themen