如何添加id到输入?

时间:2009-06-08 12:32:48

标签: jquery

我的CMS很老了。

它提供以下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:,电子邮件:,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>

2 个答案:

答案 0 :(得分: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);                    
        });
     }
);

答案 1 :(得分: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);
  });
});