我想获得<td>
的价值。我从数据库填充表,我无法使用它的名称获取特定字段的值,因为行是循环的,如果我使用名称,我从第一行获取该字段的值。所以为此,我写了这样的js:
function searchcatg(el2){
var catel = $(el2);
var searchTxt = catel.val();
//var brandval = $("input[name='brandid']").val();
var brandval = $(el2).closest("tr").find('td:eq(7)').text();
alert(brandval);
$.post("search-cat-brand-vw.php", {searchVal: searchTxt, brand:brandval})
.done(function(catglist) {
$("#catglist").html(catglist);
});
}
我正确获得了第一个值,但值brandval
未正确显示。在警告框中它显示了一些不可读的字符,并且在我发布的php中,它得到一个空白。这就是brandid
字段的样子
<td><input type="text" name="brandid" value="<?php echo $brandid; ?>" list="brandlist" id="output" onkeyup="searchbrand(this)" >
<datalist id="brandlist" name="taskoptionbrand">
<option> </option>
</datalist> </td>
在.val()
中使用var brandval
表示未定义。我该怎么办?
答案 0 :(得分:1)
TD
从不包含任何值,因此您无法使用val()
或value
。您需要在TD
中找到输入框,然后使用val()
。
当我发表评论时,您需要更改您的函数searchcatg
。搜索替换。
发件人强>
$(el2).closest("tr").find('td:eq(7)').text();
以强>
$(el2).closest("tr").find('td:eq(7) input').val();
答案 1 :(得分:0)
使用它:
var brandval = $('input[name="brandid"]').val();
而不是:
var brandval = $(el2).closest("tr").find('td:eq(7)').text();