使用javascript获取表的td值

时间:2016-05-17 05:04:29

标签: javascript php jquery html

我想获得<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表示未定义。我该怎么办?

2 个答案:

答案 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();