私はまだこれに非常に多くの問題を抱えています:
function padTitles() {
$('tr').each(function () {
var tds = $(this).find('input'),
text = tds.filter('[id^="TempRowKey_"]').val(),
tdToPad = tds.filter('[id^="title_"]'),
pad;
if (/0\.0$/.test(text))
pad = 10;
else if (/\.0$/.test(text))
pad = 35;
else
pad = 60;
tdToPad.css('paddingLeft', pad);
});
}
追記:以前使っていたものです。これは、値が入力内にない場合に機能しました。
var tds = $(this).find('td'),
text = tds.filter('[id^="refKey_"]').text(),
TempRowKey_ で始まる ID を持つ入力の値を取得し、これらをパディングに使用することになっています。しかし、コードは何もしません。
ここに私のHTMLがあります:
<tr id="row_1">
<td id="tempRowKey_1" >
<input type="text" size="10" value="1.0.0" class="updatable" id="TempRowKey_1">
</td>
<td id="title_1">
<input id="Title_1" class="updatable" type="text" value="zxxx" size="100" name="item.Title">
</td>.
<td ...
</tr>
これをテストできる方法はありますか。jQuery ブロック内の何かにアクセスできませんか?
アップデート:
Here is my original code that worked before I enclosed the value I need inside an input:
function padTitles() {
$('tr').each(function () {
var tds = $(this).find('td'),
text = tds.filter('[id^="refKey_"]').text(),
tdToPad = tds.filter('[id^="title_"]'),
pad;
if (/0\.0$/.test(text))
pad = 10;
else if (/\.0$/.test(text))
pad = 35;
else
pad = 60;
tdToPad.css('paddingLeft', pad);
});
}