嗨我的div表中有一行如下:
<div class="tbody plb" id="impemail">
<div class="tbc1" style="border-right:none;">
<input class="tblinput sname pvar" type="text">
<input type="hidden" class="ppre" value="">
</div>
<div class="thc2" style=" width: 75%; border-left:1px dotted #CFCFCF;">
<textarea class="tblinput semails txtInputta pvar" style="font-size:13px;"></textarea>
<input type="hidden" class="ppre" value="">
<div class="errmsg emailerr"></div>
</div>
<div class="hideRow" style="width:20px;float:right;padding:15px 0px 0px 0px;">
<img src="../../../images/redcross.png" alt="" />
</div>
</div>
我尝试编写函数来删除这一行,当我点击类“hideRow”使用jQuery函数如下,这里我想清除输入和textarea字段,而hideRow函数正在进行,以便刷新后页面中的值不应该在行中。 我试过的jQuery函数如下:
$(function () {
// Delete row from PTC grid
$('.hideRow').live("click", function () {
$(this).parents('.plb').hide("slow", function () {
$(this).parents('.tblinput sname pvar').val('');
$(this).parents('.tblinput semails txtInputta pvar').val('');
});
})
});
任何人都请告诉我如何清除这两个字段,以便在页面重新加载后,这些值不应该存在。
答案 0 :(得分:6)
更改您的选择器,如下所示:
$(this).parents('.tblinput.sname.pvar').val('');
$(this).parents('.tblinput.semails.txtInputta.pvar').val('');
对于元素的多个class
es,您需要使用class
加入dot(.)
个名称,而无需任何空间在其中创建选择器,如上所述。
您的选择器.tblinput sname pvar
是 descendant selector
格式。这意味着它在pvar
内的sname
和sname
内搜索tblinput
,而在第二个$(function () {
// Delete row from PTC grid
$('.hideRow').live("click", function () {
$(this).closest('.plb').hide("slow", function () {
$(this).find('.tblinput.sname.pvar, .tblinput.semails.txtInputta.pvar').val('');
});
})
});
内搜索相同。
相关参考:
{{1}}
答案 1 :(得分:0)
您的主要问题是,在.hide()
的回调中,this
的值是指隐藏的元素;正确的遍历技术.find()
与$(this).find('.tblinput.sname.pvar').val('');
一样。
<强>的Javascript 强>
$(function () {
// Delete row from PTC grid
// .live() is deprecated, port to .on()
$('.hideRow').live("click", function () {
//use .closest() instead of .parents() - less traversing
$(this).closest('.plb').hide("slow", function () {
// search down, not up - and no space between class selectors
$(this).find('.tblinput.sname.pvar').val('');
$(this).find('.tblinput.semails.txtInputta.pvar').val('');
});
})
});