我有一张带有这种模式的tr的表
<tr>
<td width="37" align="left"></td>
<td width="200" align="left">
<input type="submit" name="s1" onclick="ChangeThis(this);" value="Update Color" id="s1" class="btn-blue">
<input name="info1" type="text" maxlength="6" id="info1" style="color:Red;background-color:#FFFFFF;font-weight:normal;width:90px;">
</td>
<td width="340" align="center">
<input name="extra1" type="text" maxlength="200" id="extra1" style="width:330px;">
</td>
<td class="hide"></td>
</tr>
我想要做的是点击此按钮,它将具有与输入示例按钮相同的序列按钮id = s1 input id = info1 我想改变背景颜色。我更喜欢jquery或javascript很好。我开始考虑正则表达式.. ^ ..
function ChangeThis(x) {
$(this).closest('td').find('input[type="text"]').css('backgroundColor', 'Yellow');
}
那不起作用,我试过tr而不是td
UPDATE /修改
所以基本上我想要的是当单击按钮时,文本中有预定义的内容要更改
答案 0 :(得分:2)
<强>更新强>
好的,我想我明白你的喜好。 如果这个小提琴解决了它,请告诉我:
https://jsfiddle.net/14ymd0pd/
根据您的描述,我对您的喜好感到有些困惑。
我已经创建了一个JSFiddle,我认为它是预期的功能。
https://jsfiddle.net/tvu08yrm/
主要区别在于使用jQuery on
事件处理程序分离出JavaScript:
$('.color-btn').on('click', function(){
添加一个新类(color-btn
),以便可以定位按钮并更改三元组DOM元素的功能。
几点说明:
div
或ul
或其他相关元素,而不是表格。让我知道小提琴是否回答了你的问题:)
答案 1 :(得分:0)
有许多解决方案可以让您的代码正常运行。
第一个解决方案:在函数
中使用x而不是this第二个解决方案:将onclick="changeThis(this)"
更改为onclick="changeThis.call(this)"
第三种解决方案:不要使用onclick。
<tr>
<td width="37" align="left"></td>
<td width="200" align="left">
<input type="submit" name="s1" value="Update Color" id="s1" class="btn-blue">
<input name="info1" type="text" maxlength="6" id="info1" style="color:Red;background-color:#FFFFFF;font-weight:normal;width:90px;">
</td>
<td width="340" align="center">
<input name="extra1" type="text" maxlength="200" id="extra1" style="width:330px;">
</td>
<td class="hide"></td>
</tr>
$('input:submit[name="s1"]/* or a different selector... depends on your logic */').click(changeThis);
你应该使用第三个。