使用javascript获取表的td值

Get value of td of table using javascript

本文关键字:td javascript 获取 使用      更新时间:2023-09-26

我想要得到一个<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>

var brandval中使用.val()表示它是未定义的。我该怎么办?

TD从不包含任何值,因此不能在其中使用val()value。您需要在TD中找到输入框,然后使用val()

正如我所评论的,您需要更改函数searchcatg。搜索替换项。

来自

$(el2).closest("tr").find('td:eq(7)').text();

TO

$(el2).closest("tr").find('td:eq(7) input').val();

使用这个:

var brandval = $('input[name="brandid"]').val();

而不是这个:

var brandval = $(el2).closest("tr").find('td:eq(7)').text();