请原谅我们的格式,但我们无法连接并发布到任何公共网站,因此这是从我的手机发布的。
我们有一个带复选框的ASP.Net gridview。我们有逻辑可以查找是否检查了哪些值。我们唯一的问题是我们有一个案例打开另一个窗口,其中包含基于这些复选框的新页面。自上次回发以来,用户可能检查了更多复选框,因此我们将通过gridview检查该页面的数据并获取检查值。
我可以毫无问题地获得复选框。问题是我不知道如何从另一列中找到值。
我不能发布很多代码,但我确实获得了发布这么多的许可。
function myfunctionname (gridviewid){
var myvalue = "";
$('#' + gridviewid + ' input[type=checkbox]:checked').each(function (index){
myvalue = myvalue + $(this).IDontKnowWhatINeedHere
});
}
我尝试过.find()
,.parente()
,.name()
等许多其他事情。基本上,无论我尝试过什么,我总是有未定义的,jQuery函数或错误。
我想要的是,因为我有正确的复选框,我想获取父行并从另一列中作为跨度生成的标签中获取值。
任何人都有任何想法从哪里开始进入下一步?
由于
答案 0 :(得分:1)
第一个问题是找到父行。
$(this).closest('tr');
将转到复选框的父行。您可以像这样获取行中的列列表:
var tds = $(this).closest('tr').find('td');
然后,一旦你有了,你就可以使用.eq函数和你正在寻找的列索引
var col = tds.eq(index);
然后你应该能够从这个范围内得到这样的值:
var spanValue = col.find('span').text();
回复:.eq()和.closest()
答案 1 :(得分:1)
您可以通过获取父<span>
从另一列的<TR>
获取文本,之后,您可以按索引找到正确的列,或者更推荐按ID或类属性查找:
...
<tr>
<td><input type="checkbox"></td>
...
<td><span>Here</span></td>
...
</tr>
...
<script type="text/javascript">
function myfunctionname (gridviewid){
var myvalue = "";
$('#' + gridviewid + ' input[type=checkbox]:checked').each(function (index){
myvalue = myvalue + $(this).closest("tr").find("span").text();
// or $(this).closest("tr").find("#MySpanID").text();
// or $(this).closest("tr").find(".MySpanClass").text();
});
}
</script>
请注意,我使用了closest()
。此方法在DOM中搜索它使用指定选择器创建的第一个父级。在这种情况下,它将遍历DOM直到复选框的父<TR>
。从那里你可以搜索任何孩子。
答案 2 :(得分:1)
在没有看到代码的情况下,我可以猜出一个可能的解决方案。 jquery函数“最接近”。 http://api.jquery.com/closest/
这可能是一个不好的例子,但它显示了它如何起作用或者可能有所帮助。
<div>
<p><label for="randomName">label</label><input type="text" name="randomName" id="randomName"/> </p>
<p><label for="randomName1">label</label><input type="text" name="randomName1" id="randomName1"/> </p>
</div>
<script type="text/javascript">
$("[name='randomName']").closest( 'div').find( "[name='randomName1']").val();
</script>