Даже это не работает ....jquery получить индекс строки?
$("table#mytable > tbody > tr").each(function(index) {
if($(this).attr('id','firstrow')) {
$("input[name^=f1]").focus(function() {
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
} else {
$("input[name^=f2]").focus(function() {
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
}
});
<table id="mytable">
<tbody>
<!-- this is the first row, if the user clicks in f1, a new row is appended -->
<tr valign="top" id="firstrow">
<td><input type="hidden" value="secret" name="std"></td>
<td><input type="text" class="form-text" value="" name="f1[]"><label>F1</label></td>
<td><input type="text" class="form-text" value="" name="f3[]"><label>F2</label></td>
<td><input type="text" class="form-text" value="" name="f4[]"><label>F4</label></td>
</tr>
<!-- this is the new row that is append if the user clicks in f1. From here on out, a new row is appended if the user clicks in f2 -->
<tr valign="top">
<td><input type="text" value="" name="f2"></td>
<td><input type="text" value="" name="f1[]"><label>F1</label></td>
<td><input type="text" value="" name="f3[]"><label>F2</label></td>
<td><input type="text" value="" name="f4[]"><label>F4</label></td>
</tr>
</tbody>
</table>
HTML, я работаю с ...
<table id="mytable">
<tbody>
<!-- this is the first row, if the user clicks in f1, a new row is appended -->
<tr valign="top">
<td><input type="hidden" value="secret" name="std"></td>
<td><input type="text" class="form-text" value="" name="f1[]"><label>F1</label></td>
<td><input type="text" class="form-text" value="" name="f3[]"><label>F3</label></td>
<td><input type="text" class="form-text" value="" name="f4[]"><label>F4</label></td>
</tr>
<!-- this is the new row that is append if the user clicks in f1. From here on out, a new row is appended if the user clicks in f2 -->
<tr valign="top">
<td><input type="text" value="" name="f2[]"><label>F2</label></td>
<td><input type="text" value="" name="f1[]"><label>F1</label></td>
<td><input type="text" value="" name="f3[]"><label>F3</label></td>
<td><input type="text" value="" name="f4[]"><label>F4</label></td>
</tr>
</tbody>
</table>
Еще одна редакция, которая до сих пор не работает. Я даже не получаю предупреждение ...
$("table#mytable > tbody > tr").each(function() {
if($(this).index(0)) {
$("input[name^=f1]").focus(function() {
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
} else {
$("input[name^=f2]").focus(function() {
alert(index);
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
}
});
Edit - Последняя версия, но до сих пор не работает ...
if($("#mytable > tbody > tr:first")) {
$("input[name^=f1]").focus(function() {
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
}
if($("#mytable > tbody > tr:not(:first)")) {
$("input[name^=f2]").focus(function() {
var newRow = '<tr><td></td><td></td></tr>';
$("tbody").append(newRow);
});
}
Я пытаюсь написать функцию, которая будет делать что-то, если индекс строки равен 0, а затем что-то еще, если индекс строки больше 0. Нулевая часть работает, но я не могу понять синтаксис строк, которые имеют индекс больше 0.
Для строки tr [0] я делаю это:
if($("#mytable > tbody > tr ").index(0)) {
...
Я пробовал:
if($("#mytable > tbody > tr ").index() > 0) {
Но это не сработало?
Что вы имеете в виду, когда указатель **, если индекс строки равен 0 **. Вы имеете в виду, что строка, которая была нажата, равна 0, или вы хотите, чтобы вы пробивали все строки и делали что-то для каждого на основе своего индекса, или пытаетесь проверить, есть ли в таблице какие-либо строки? – user113716
Я имею в виду, если это первая строка в таблице, затем сделайте что-нибудь, а еще сделайте что-нибудь еще ... Я отредактировал оригинальный код, и я попробовал все предлагаемое здесь. (Я также опубликую еще один rev в своем оригинальном посте, и это тоже не работает ...) – TwixxyKit
Оператор if ('if ($ (" # mytable> tbody> tr: first "))') будет всегда оценивайте истину. jQuery всегда возвращает объект, который всегда правдивый. Используйте '.size()' или '.length', чтобы увидеть, содержит ли объект jQuery какие-либо элементы. – Matt