ошибка jQuery?? Как получить первый “td” во всех строках, которые видимы

sed отлично подходит для s / old / new, но для всего остального просто используйте awk:

$ awk 'NR==FNR{new=new [110] ORS; next} {print} [110]=="/def/ghi/jkl"{printf "%s", new}' numbers letters
/abc/def/ghi
/def/ghi/jkl
123
/ghi/jkl/mno

Вышеописанное будет работать в любом awk в любой оболочке на любой коробке UNIX для любого содержимого любого входные файлы. Он просто создает переменную с именем «new», читая numbers по одной строке за раз и конкатенируя, затем читает letters и печатает текущую строку, а затем печатает содержимое new, если текущая строка - это строка интересует.

7
задан runxc1 Bret Ferrier 7 May 2009 в 21:45
поделиться

4 ответа

Я запускаю код для события щелчка. HTML-код, который вы написали, довольно хорош, но по неизвестной мне причине он не работает. Тем не менее, я нашел работу. (Я пытаюсь получить разделенную запятыми строку всех значений в первом td для видимых строк) В любом случае следующая работа выполняет свою работу.

    var notfirst = false;
    var serials = "";
    var tds = $("table.SimpleTable tbody tr:visible td:first-child");
    for (var i = 0; i < tds.length; i++) {
        var td = $(tds[i]);
        if (td.is(":hidden"))
            continue;
        if (notfirst)
            serials += ",";
        else
            notfirst = true;

        serials += $.trim(td.text());
    }

По какой-то причине тег: hidden работает правильно, но не: visible в IE7

6
ответ дан 6 December 2019 в 10:53
поделиться

Из документации:

«Как вычисляется: visible было изменено в jQuery 1.3.2. Элемент считается видимым, если он и его родители занимают место в документе. Видимость CSS не принимается во внимание account. "

Возможно, это как-то связано с этим. Попробуйте использовать селектор классов или что-то в этом роде вместо tr: visible

3
ответ дан 6 December 2019 в 10:53
поделиться

Это должно работать. С HTML, который выглядит так:

<table class='SimpleTable'> 
  <tr style='display: none;'> 
    <td>test1</td> 
  </tr> 
  <tr> 
    <td>test2</td> 
  </tr> 
  <tr> 
    <td>test3</td> 
  </tr> 
  <tr style='display: none;'> 
    <td>test4</td> 
  </tr> 
  <tr> 
    <td>test5</td> 
  </tr> 
  <tr> 
    <td>test6</td> 
  </tr>   
</table>

Делаем это:

$("table.SimpleTable tbody tr:visible td:first-child").css('color','red');

Делает цвет красным в Firefox, IE7 для меня. Как выглядит ваш HTML?

Вот что я тестировал на

EDIT : Мне очень странно, что вам нужно делать то, что вы делаете прямо сейчас. Вы должны иметь возможность заменить то, что у вас есть прямо сейчас, следующим образом:

var serials = [];
$("table.SimpleTable tbody tr:visible td:first-child").each(function() {
    serials.push($.trim($(this).text()));
});
var serials = serials.join(',');

Если TD заполняются из селектора, они должны быть только видимыми. Если вы добавляете скрытые TD в сериалы (что, я должен подчеркнуть, на самом деле не должно происходить и где-то есть ошибка или признак ошибки), попробуйте вместо этого использовать этот селектор:

$("table.SimpleTable tbody tr:not(:hidden) td:first-child")
6
ответ дан 6 December 2019 в 10:53
поделиться

почему бы тебе не разделить его немного?

$("table.SimpleTable").find("tr:visible").find("td:first-child").text()

?

3
ответ дан 6 December 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: