jQuery从上面获取标签

时间:2012-12-13 05:44:53

标签: jquery html

我正在编写一个函数来在每次用户更新时更新订单收据,然后关闭产品弹出式叠加层。 该函数搜索表单的每个输入,如果其值大于0,则将信息添加到收据div。我试图让标签元素的.html()位于输入字段上方并描述当前项目,并将其用作收据中项目的描述。

我尝试使用但没有成功:

 - $this.closest('label').html() 
 - $this.prev('label').html()
 - $this.find('label').html()
 - this.element.find('label').html()

这是我的代码。我正在讨论的部分是'标签是'部分......

function updateOrder(){

var items = '';
$('input').each(function(){
    var $this = $(this),
        i_value = $this.attr('value');

    if(i_value > 0){
      items += $this.attr('id') + ' Quantity: ' + i_value + '<br/>' 
      + 'label is: ' + $this.closest('label').html() + '<br/>';  
    }
});

$('#d_reciept').html(items);

}

和示例表单项

<tr>
<td class="td_thumbs">
    <div>
        <a class="fancybox" data-fancybox-group="vinyl-banners" href="img/products/vinyl-corporateblue.jpg"> <img src="img/products/thumbs/vinyl-corporateblue-thumb.png" alt="vinyl c-blue"/></a>
        <label>Corporate Blue</label>
    </div>
</td>
<td>6</td>
<td>
    <input id="vinyl-blue" type="number" max="6" min="0" value="0"/>
</td>
</tr>

1 个答案:

答案 0 :(得分:17)

函数closest首先给出ancestors中给定选择器的准确性,你的标签不在第一个祖先,而是在父tr children中,你需要去父母tr然后使用find在其父级中搜索label

$(this).closest('tr').find('label').html()

$(this).closest('tr :td:eq(0)').find('label').html()