2009-06-08 64 views
0

我的CMS很旧。如何将id添加到输入中?

它给出了以下HTML。 我想添加id到每个输入和id名称,这是来自前一个td的文本,如navn,e-po,hjem等。 Id可以是4个字母。

我试过这段代码,但它只给每个输入提供了id =“----”。

<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> 

基本上我试图做的是。对于每个tr。设置一个变量formid到第一个td并获取文本并用四个字母改为小写。 并找到这个输入并添加这个formid的id。

(UPDATE) 经过两次回复,我尝试了以下方法。

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

这提醒navn :, E-后:, hjemmeside:和SAK :.

到目前为止这么好。 但是,当我使用以下,它什么都没有警报。我想从每个字符串中取出。

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

任何人都可以帮助我吗?

在此先感谢。

<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> 

回答

0

我觉得这是更好地从输入元素开始,并从那里导航。

这也是一个好主意,设置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

感谢你们。 我在这个URL中尝试了两个代码,http://www.designvalg.no/Kontakt.asp。 但是他们在两个代码中都给出了id =“”。 我错过了什么吗? 谢谢。 – shin 2009-06-08 13:53:55

0

我重写功能的位仅在输入元素进行操作:

$(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);      
     }); 
    } 
); 
相关问题