2016-05-17 131 views
-1

我想要得到<td>的值。我正在從數據庫填充表,並且我無法使用它的名稱獲取特定字段的值,因爲行是循環的,如果使用名稱,我會從第一行獲取該字段的值。因此,對於這一點,我寫我的JS是這樣的:使用javascript獲取表的td值

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現場看起來像使用.val()var brandval說,這是不確定的

<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> 

。我該怎麼辦?

+0

我不知道你正在尋找什麼價值,但改變'searchbrand(本)''來searchbrand(THIS.VALUE) ' –

+1

您可能需要更改爲'$(el2).closest(「tr」)。find('td:eq(7)input')。val();' –

+1

@FrayneKonok,做到了!如果你可以發佈這個答案,我可以接受 –

回答

1

TD不會包含任何值,所以你不能使用它的val()value。您需要在TD中找到輸入框,然後使用val()

正如我評論它,你需要改變你的功能searchcatg。搜索替換。

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

TO

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

使用本:

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

,而不是這樣的:

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

我已經說過這樣做只適用於第一行。 –

+0

使用.each()函數獲取所有值; –