如何确定Html表列的类型

时间:2014-02-27 09:22:44

标签: javascript jquery html5 dom

我有一个包含3列的表格。

  1. 是隐藏的,包含所选行的“id”
  2. 包含“产品”名称
  3. 包含是/否表示产品是否存在
  4. 在行上单击将详细信息推送到数组

    $("#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());
               }
            });
    

3 个答案:

答案 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')});