尝试使用数据属性引用元素并影响另一个元素

时间:2014-02-25 21:20:55

标签: jquery

我有多个带有可变数据属性的输入字段,每个输入字段都有一个相应的按钮。我试图检查并查看每个输入字段中是否有值。如果有,则相应按钮的颜色会发生变化。但我无法引用数据属性。这就是我的......

HTML:

 <td>
   <textarea data-id="<%= textID %>"></textarea>
 </td>

 <td>
   <input type="button" data-id="<%= textID %>"/>
 </td>

TextID是变量。我想使用data-id的原因是因为表中有很多行,这是最干净的方法。

jQuery的:

 var text = $.trim($('textarea[data-id="' + textID + '"')).val(),
     button = $('input[type=button][data-id="' + textID + '"]');

 if (text.length !== 0) {
     $(button).css('background-color','white');
     }

这不起作用,我有一种直觉,我错误地引用它或者语法有问题。感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:2)

 var text = $.trim($('textarea[data-id="' + textID + '"')).val(),
     button = $('input[type=button][data-id="' + textID + '"]');

 if (text.length !== 0) {
     $(button).css('background-color','white');
     }

你在第一行有错误,你错过了结束,它应该是

var text = $.trim($('textarea[data-id="' + textID + '"]').val())

答案 1 :(得分:2)

首先,你在textarea选择器中缺少一个结束括号:

$('textarea[data-id="' + textID + '"]')
                                 // ^

其次,你是trim() jquery对象,而不是值:

$.trim($('textarea[data-id="' + textID + '"]') .val())
                             // move paren    ^------^

答案 2 :(得分:0)

试试这个jQuery:

var text = $.trim($('textarea[data-id="' + textID + '"]').val()),
    button = $('input[type=button][data-id="' + textID + '"]');

if (text.length !== 0) {
    $(button).css('background-color','white');
}