2009-06-08 4 views
0

私のCMSは非常に古いです。IDを入力に追加する方法は?

以下のHTMLが表示されます。 navn、e-po、hjemなど、以前のtdのテキストであるidとidをそれぞれ入力したい。 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に設定してテキストを取得し、4文字の小文字に変更します。 この入力を見つけ、このformidのIDを追加してください。

(更新) 2回の返信の後、次のことを試しました。

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

このアラートはnavn :, e-post :, 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

+0

最初の提案されたコードはid = ""を与え、2番目のコードはid = ""です。 – shin

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);      
     }); 
    } 
); 
関連する問題