Javascript JQuery:选择以特定名称结尾的所有ID,并更改其同级输入按钮

Javascript JQuery:选择以特定名称结尾的所有ID,并更改其同级输入按钮,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我试图指出文本还不能发送,显示一个灰色的输入提交按钮,带有classbtn primary。相反,btn默认值是一个彩色输入按钮。 但是,一个站点上有许多文本区域,因为我的JQuery代码应该用于发布新状态和评论多个状态条目(如Facebook) 这就是为什么发布新状态时会有一个名为status\u textarea的唯一id,而注释文本区域的id类似于comment\u textarea39。因此,在评论文本区域的末尾总是有一个数字。这就是我的代码的第一个问题: $('[id$=_textar

我试图指出文本还不能发送,显示一个灰色的输入提交按钮,带有class
btn primary
。相反,btn默认值是一个彩色输入按钮。 但是,一个站点上有许多文本区域,因为我的JQuery代码应该用于发布新状态和评论多个状态条目(如Facebook)

这就是为什么发布新状态时会有一个名为
status\u textarea
的唯一id,而注释文本区域的id类似于
comment\u textarea39
。因此,在评论文本区域的末尾总是有一个数字。这就是我的代码的第一个问题:

$('[id$=_textarea]').on('click contextmenu keyup blur', function(e) {
    var text = $(this).val();   
    var button = $(this).parent().hasClass('btn-primary');
    button.val(123); // Test to find the input button

    if (text.length < 1) $(button).removeClass('btn-default').addClass('btn-primary');
    else $(button).removeClass('btn-primary').addClass('btn-default');
}); 
评论文本区:

<form id="statusForm">
<input type="hidden" name="privacy" value="0" autocomplete="false">
<textarea id="status_textarea" name="text" style="min-height:55px"></textarea>
<input id="status" data-case="status" data-form="#statusForm" type="submit" class="modal-send mt15 mb15 btn btn-primary" value="Senden" autocomplete="false">
</form>
<form id="commentForm82">
<textarea id="comment_textarea82" name="text" class="comment mb15" placeholder="Hier kommentieren..."></textarea>   
<input type="hidden" name="log_id" value="82" autocomplete="false">
<input id="comment" data-case="comment" data-form="#commentForm82" data-hide="1" data-hide-success="1" type="submit" class="modal-send pull-right btn btn-default" value="Senden">          
</form>

使用而不是,因为在id属性的末尾有一个动态部分

$('[id*=_textarea]')
另一个更好的选择是使用类选择器,即为所有需要选择的元素分配一个公共类,如
textarea
,然后使用

$('.textarea')
使用代替,因为在id属性的末尾有一个动态部分

$('[id*=_textarea]')
另一个更好的选择是使用类选择器,即为所有需要选择的元素分配一个公共类,如
textarea
,然后使用

$('.textarea')

我建议您使用一个公共类来绑定事件,即添加一个类,例如
yourClass
,然后您可以使用类选择器

$(".yourClass").on('click contextmenu keyup blur', function(e) {
});
但是,在事件处理程序中使用绑定事件和
.find()
,以识别
输入
,而不是
hasClass()

$('[id*=\u textarea]')。在('单击上下文菜单键控模糊',函数(e){
var text=$(this.val();
//重要提示:请注意这里
//使用find as hasClass返回true/false not元素
var button=$(this.parent().find('btn-primary');
如果(text.length<1){
$(按钮).removeClass('btn-default').addClass('btn-primary');
}否则{
$(按钮).removeClass('btn-primary').addClass('btn-default'))
};
});

我建议您使用一个公共类来绑定事件,即添加一个类,例如
yourClass
,然后您可以使用类选择器

$(".yourClass").on('click contextmenu keyup blur', function(e) {
});
但是,在事件处理程序中使用绑定事件和
.find()
,以识别
输入
,而不是
hasClass()

$('[id*=\u textarea]')。在('单击上下文菜单键控模糊',函数(e){
var text=$(this.val();
//重要提示:请注意这里
//使用find as hasClass返回true/false not元素
var button=$(this.parent().find('btn-primary');
如果(text.length<1){
$(按钮).removeClass('btn-default').addClass('btn-primary');
}否则{
$(按钮).removeClass('btn-primary').addClass('btn-default'))
};
});

对于那些更老式的,只需在每个textarea中搜索包含“textarea”的id,如果它与地图中的模式匹配,则返回它:

var theseTextAreas = $('textarea').map(function(){
    if ($(this).attr('id').indexOf('textarea') > -1)
    {
        return $(this);
    }
});

对于那些更老式的,只需在每个textarea中搜索包含“textarea”的id,如果它与地图中的模式匹配,则返回它:

var theseTextAreas = $('textarea').map(function(){
    if ($(this).attr('id').indexOf('textarea') > -1)
    {
        return $(this);
    }
});

能否共享html示例在第一种情况下,存在一个隐藏的
输入
是否要更改其类?在第二种情况下,哪个输入的类必须更改对不起,我刚刚更新了HTML,我的代码出错了,发送按钮在表单之外。因为我正在使用ajax,它仍然有效,我没有注意到这一点。但是,我只需要找到最近的输入按钮,该按钮也有类
btn primary
modal send
。这是发送按钮@arunpjohnny你能分享html样本吗在第一种情况下,有一个隐藏的
输入
你想改变它的类吗?在第二种情况下,哪个输入的类必须更改对不起,我刚刚更新了HTML,我的代码出错了,发送按钮在表单之外。因为我正在使用ajax,它仍然有效,我没有注意到这一点。但是,我只需要找到最近的输入按钮,该按钮也有类
btn primary
modal send
。这是发送按钮@谢谢,我把它改成了一门课。你能解释为什么我宁愿使用class而不是id,即使id名称是唯一的吗?这是关于装载时间还是类似的事情?是的,现在我只需要找出如何找到我正在搜索的输入按钮。您对此有什么建议吗?@Vaia,类选择器更快,而且您可以将事件关联到不需要的元素谢谢,我将其更改为类。你能解释为什么我宁愿使用class而不是id,即使id名称是唯一的吗?这是关于装载时间还是类似的事情?是的,现在我只需要找出如何找到我正在搜索的输入按钮。您对此有什么建议吗?@Vaia,类选择器更快,而且您可以将事件关联到不需要的元素谢谢,我将其更改为类。你能解释为什么我宁愿使用class而不是id,即使id名称是唯一的吗?这是关于装载时间还是类似的事情?现在我只需要找出如何找到我正在搜索的输入按钮。你对此有什么建议吗?我编辑了我的问题以显示HTML示例代码。类选择器比属性选择器快,这就是为什么类建议谢谢,我将其更改为类。你能解释为什么我宁愿使用class而不是id,即使id名称是唯一的吗?这是关于装载时间还是类似的事情?现在我只需要找出如何找到我正在搜索的输入按钮。你对此有什么建议吗?我编辑了我的问题以显示HTML示例代码。类选择器比属性选择器快,这就是为什么类提示在搜索类
textarea
时不会慢一点吗?我只是更新了它来查找类textarea,而不是id,因为我发现类比id快。如果搜索类
textarea
,这不是会更慢吗?我只是更新了它以查找类文本区域