我正在努力选择jQuery:我有一个包含这些列的表(或多或少)
我想隐藏所有textarea为空的按钮(以避免提交)。这是表格:
单行的DOM结构非常简单(我认为):
所以,我想选择类似“td中包含的所有按钮,这是td的兄弟,其中包含空文本区域”... anf anf ...我可以使用单个jQuery选择或不?先感谢您。
答案 0 :(得分:4)
当然!
$("tr td textarea").each(function() {
if (this.value == "") {
$(this).closest("td").next("td").find("button").prop("disabled", true);
}
});
答案 1 :(得分:3)
您可以使用下一个选择器隐藏onLoad上的按钮:
$('textarea:empty').parent().next('td').find('button').hide();
或者如果要禁用按钮:
$('textarea:empty').parent().next('td').find('button').prop("disabled", true);
检查用户是否在页面上的textarea中键入了某些内容并启用或不启用该按钮会很有用:
$( $('textarea') ).blur(function() {
var button = $(this).parent().next('td').find('button');
if($(this).val() === ''){
button.prop("disabled", true);
}else{
button.prop("disabled", false);
}
});
你可以用你的桌子检查这个小提琴: http://jsfiddle.net/6B9XA/4/
答案 2 :(得分:1)
试试这个
$('table textarea').change(function()
{
var thisval=$.trim($(this).html())
if(thisval=='')
{
$(this).parent().next().children('button').attr('disabled')
}
})
答案 3 :(得分:1)
我认为你应该这样使用它:
$("#yourtableid").find("textarea").each(function() {
if (this.value == "") {
$(this).closest("tr").find("button").prop("disabled", true);
}
});
"#yourtableid"
这应该更改为您的表格ID。
答案 4 :(得分:1)
您可以使用filter()仅获取该行中包含空文本区域的按钮
$('tr button').filter(function(){ // get all buttons
return $(this).closest('tr').find('textarea').val() == ''; // only return those that are empty
}).prop('disabled',true); // disable the buttons