2009-06-08 6 views
0

Mon CMS est très ancien.Comment ajouter un identifiant à l'entrée?

Il donne le code HTML suivant. Je veux ajouter un identifiant à chaque entrée et un nom d'identifiant qui est un texte du td précédent, tel que navn, e-po, hjem etc. Id peut être de 4 lettres.

J'ai essayé ce code, mais il donne seulement id = "----" à chaque entrée.

<script type="text/javascript"> 
$(document).ready(function(){ 
$('table tr').each(function(){ 
var formid=$('td:first', this).text().toLowerCase().slice(0,4); 
$('input', this).attr('id', function() { 
return formid});  
}); 
}); 
</script> 

Fondamentalement ce que j'ai essayé de faire est cela. Pour chaque tr. mettre une variable formid au premier td et obtenir le texte et changer en minuscules avec quatre lettres. Et trouver cette entrée et ajouter l'ID de ce formidable.

(MISE À JOUR) Après deux réponses j'ai essayé ce qui suit.

$(document).ready(function() { 
$('table input').each(function() { 
var formid=$(this).parents('td').prev().text().toLowerCase(); 
alert (formid); 
}); 
}); 

Cette alertes navn :, e-post :, hjemmeside: et sak :.

Jusqu'ici tout va bien. Mais quand j'utilise ce qui suit, ça n'informe rien. Je veux sortir: de chaque chaîne.

$(document).ready(function() { 
$('table input').each(function() { 
var formid=$(this).parents('td').prev().text().toLowerCase(); 
var inputid=formid.slice(0,5); 
alert (inputid); 
}); 
}); 

Quelqu'un peut-il m'aider s'il vous plaît?

Merci d'avance.

<TABLE CELLSPACING="0" CELLPADDING="2" BORDER="0"> 
<TR> 
<TD> Navn: </TD> 
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Namn" VALUE="" MAXLENGTH="50"> 
</TD> 
</TR> 
<TR> 
<TD> E-post: </TD> 
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Epost" VALUE="" MAXLENGTH="50"> 
</TD> 
</TR> 
<TR> 
<TD> Hjemmeside: </TD> 
<TD> <INPUT TYPE="text" CLASS="input-style" NAME="Hemsida" VALUE="http://" MAXLENGTH="50"> 
</TD> 
</TR> 

<TR> 
<TD> Sak: </TD> 
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Arende" VALUE="" MAXLENGTH="50"> 
</TD> 
</TR> 

<TR> 
<TD> Telefon: 
</TD> 
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Telefon" VALUE="" MAXLENGTH="50"> 
</TD> 
</TR> 

<TR> 
<TD> 
Tekst: 
</TD> 
<TD> 
<TEXTAREA NAME="Innehall" ROWS="5" COLS="42"></TEXTAREA> 
</TD> 
</TR> 
<TR> 

.... 
.... 
.... 


</TD> 
</TR> 
</TABLE> 

Répondre

0

Je pense qu'il est préférable de commencer à partir des éléments d'entrée et de naviguer à partir de là.

Il est aussi une bonne idée de supprimer tous les signes de ponctuation et d'autres caractères non-alpha du texte avant de l'id:

$(document).ready(function() { 
    $('table input').each(function() { 
     var formid=$(this).parents('td').prev().text().match(/[a-zA-Z]{,4}/); 
     $(this).attr("id",formid); 
    }); 
}); 
+0

Merci les gars. J'ai essayé les deux codes dans cette URL, http://www.designvalg.no/Kontakt.asp. Cependant, ils donnent id = "" dans les deux codes. Est-ce que quelque chose me manque ici? Merci. – shin

+0

Le premier code suggéré donne id = "", et le second est id = "". – shin

0

Je réécrit la fonction un peu pour ne fonctionner sur des éléments d'entrée:

$(document).ready(
    function() { 
     $('input').each(
      function() { 
       // *this* refers to the current input-element 
       var labelTd = $(this).parent().prev(), 
        label = $(labelTd).text(), 
        shortLabel = label.slice(0,4); 
       // Set the id-attribute of the input element to the sliced 
       // text content of the label 
       $(this).attr('id', shortLabel);      
     }); 
    } 
); 
Questions connexes