Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery在GridView中检查列_Jquery_Asp.net - Fatal编程技术网

使用jQuery在GridView中检查列

使用jQuery在GridView中检查列,jquery,asp.net,Jquery,Asp.net,我有一个GridView,需要抓取第1列和第2列(其中的文本),并将该文本放在页面的其他位置,另一个文本框 以下是我迄今为止所做的: var checked = $('input:checkbox').click(function(e) { //place airport in textbox, txtAirport var loc = $("tr:has(:checkbox:checked) td:nth-child(1)");

我有一个GridView,需要抓取第1列和第2列(其中的文本),并将该文本放在页面的其他位置,另一个文本框

以下是我迄今为止所做的:

 var checked = $('input:checkbox').click(function(e) {
            //place airport in textbox, txtAirport
            var loc = $("tr:has(:checkbox:checked) td:nth-child(1)");
            var ac = $("tr:has(:checkbox:checked) td:nth-child(2)");

            // txtAirport.Text = loc + ac;
            $("#<%= txtAirport.ClientID%>").val(loc + ac);
        });
var checked=$('input:checkbox')。单击(函数(e){
//将机场放在文本框中,txtAirport
var loc=$(“tr:has(:复选框:选中)td:n子项(1)”;
var ac=$(“tr:has(:复选框:选中)td:n子项(2)”);
//txtAirport.Text=loc+ac;
$(“#”)val(loc+ac);
});
问题是我在我的文本框中得到了{Object}{Object},我希望在那里得到一个城市、一个st和一个机场。我如何澄清我的“loc”和“ac”变量以满足我的需要?我尝试了.text和.val(),但没有效果

以下是HTML(ASP.NET Gridview):


jQuery选择器返回包含所选DOM元素的包装集,因此需要使用.text()或.html()

编辑:好的,我已经复制了你的代码,你需要的是

$("tr:has(:checkbox:checked) td:nth-child(2)");
$("tr:has(:checkbox:checked) td:nth-child(3)");
然后做什么

$("#<%= txtAirport.ClientID%>").val(loc[0].innerHTML + ac[0].innerHTML);

您不需要选中复选框,因为jQuery选择器已经为您执行了该操作,因此jQuery返回数组或匹配的对象,因此您需要使用
loc[0]。innerHTML
loc.html()
loc.text()
,而不是
loc
(或
ac

var checked=$('input:checkbox')。单击(函数(e){
//将机场放在文本框中,txtAirport
var loc=$(“tr:has(:复选框:选中)td:n子项(2)”);
var ac=$(“tr:has(:复选框:选中)td:n子项(3)”);
//txtAirport.Text=loc+ac;
$(“#”)val(loc.html()+ac.html());
});
可能也需要更改单元格的数量(1,2->2,3),请参见
可能是您的选择器不够具体,但如果您发布上层代码的结果或呈现的HTML(来自浏览器中的页面源代码),则查找解决方案会更容易。

.HTML()为我提供了大量HTML,实际上太多了。好像我的变量不够明确。出于某种原因,我一直在获取正确的列标题,而不是列数据。我将其更改为loc[1]。innerHTML和ac[1]。innerHTML,并将返回检查的第一行。现在,我需要将选中的其他值添加到我的文本框中。更新为如何循环通过选中的行。出于某种原因,当我循环通过此处时,它会将最后一项放置在GridView中(而不是复选框)。有什么想法吗?我这里只用“loc”作为变量。你能澄清一下吗?据我所知,loc应该包含jQuery匹配的内容(var loc=$…),但它不是一个文本,而是jQuery对象-HTML对象的一般数组。要获取第一个loc.html()的内容,请使用它。通过将其更改为,我可以获取所需的列标题,但不能获取所单击行的列的内容。还需要更改数字,请参见更新的答案和示例。我想我已经获得了它,但我需要能够获取所有已检查的项,而不仅仅是一项。要做到这一点,我必须以某种方式通过它进行迭代?
$("#<%= txtAirport.ClientID%>").val(loc[0].innerHTML + ac[0].innerHTML);
for (var i = 0; i < loc.length; i++) {
    alert(loc[i].innerHTML + " " + ac[i].innerHTML);
}
   var checked = $('input:checkbox').click(function(e) {
        //place airport in textbox, txtAirport
        var loc = $("tr:has(:checkbox:checked) td:nth-child(2)");
        var ac = $("tr:has(:checkbox:checked) td:nth-child(3)");

        // txtAirport.Text = loc + ac;
        $("#<%= txtAirport.ClientID%>").val(loc.html() + ac.html());
    });