我有一个包含3列的表格。
在行上单击将详细信息推送到数组
$("#Product_grid_wrapper table tr").click(function () {
//empty the array
selectedProduct = [];
$('#Product_grid_wrapper table tr').removeClass("row_selected");
$(this).find('td').each(function () {
selectedProduct.push($(this).text());
});
$(this).addClass("row_selected");
});
但我被要求用图像改变“是/否”。我做得很完美。现在第三列包含Image标签,在运行时使用aspx
设置图像但是代码
selectedProduct.push($(this).text());
将失败第3列,因为它包含图像。如何处理这种情况?
我能够从Server.But给Image标签一个class =“yes / no”但是如何按照上面的代码读取这个值。我找到了表col的内容类型并使用了适当的函数
$(this).find('td').each(function () {
//if(type of content of td is image tag)
{
selectedProduct.push($(this).html());
//will extract "class " of image tag to get "yes/no" value
}
else{
selectedProduct.push($(this).text());
}
});
答案 0 :(得分:1)
如果您在图片中添加了“是/否”类,则可以尝试:
if($(this).find('img').length == 1) {
selectedProduct.push($(this).find('img').attr('class'));
}
答案 1 :(得分:0)
尝试使用html()
代替text()
selectedProduct.push($(this).html());
答案 2 :(得分:0)
尝试在元素中使用属性而不是隐藏列,并尽可能使用css-classes。也许是这样的:
<tr id="123">
<td>_productName</td>
<td>
<img data-present="yes" src="..." />
</td>
</tr>
然后您可以使用:
selectedProduct.push({id : $(this).id, present : $(this).find('img').data('present')});