Попробуйте это:
$('table#table1 tr:last input[name=code]').val();
Или с учетом вашего кода:
$('#cont').live('click', function(event) {
var tr = $('#wr-viewcarttable tr:last');
var itemcode = tr.find('input[name=code]').val();
window.location = "/search?p="+itemcode;
});
В вашем коде есть две ошибки, у вас не совпадают кавычки в $("#cont')
Ваш входной поиск неверен.Теперь у вас есть:
$(tr > 'input[name="code"]').val();
Поскольку >
находится вне кавычек, это не строка, а оператор сравнения, который теперь сравнивает tr
с 'input[name="code"]'
.Операторы сравнения всегда возвращают логические значения (true или false), поэтому вы эффективно делаете это:
$(true).val();
Что не имеет особого смысла.Если у вас есть объект jQuery, вы можете использовать метод find
, чтобы найти дочерние элементы этого объекта, или альтернативно передать элемент в качестве контекста в функцию $()
.Таким образом, эти два будут работать и будут равны:
tr.find('input[name=code]').val();
$('input[name=code]', tr).val();
На самом деле нет смысла сохранять tr
в его собственной переменной в вашем случае, так как вы можете получить значение только в одной декларации, как показано выше.