我刚刚开始使用 jQuery,虽然下面的代码可以完成工作,但我感觉它可以缩短。
var accountAddress = $(document.createElement("input")).addClass("readOnly")
.attr("contentEditable", "false").attr("id", "d_accountAddress");
$("#customerid_c").next().next().next().append(accountAddress);
如果不清楚 - 我正在做的是创建新的输入标签,分配类并使其只读,然后将新输入的两个 TD 放置在某些已知文本的右侧。
Update:
这是我正在修改的简化 HTML。我添加内容的地方标有##1## and ##2##.
<TD id=customerid_c>
<LABEL for=customerid>Customer</LABEL>
</TD>
<TD id=customerid_d></TD>
<TD class=ms-crm-Field-Normal>
<LABEL>##1##</LABEL>
</TD>
<TD>##2##</TD>
是的,它可以。
$('#customerid_c').nextAll().eq(2)
.append('<input class="readOnly" id="d_accountAddress" />');
在 jQuery 1.4.2 中,你可以这样写
$('#customerid_c~:eq(2)')
.append('<input class="readOnly" id="d_accountAddress" />');
该选择器在早期版本的 jQuery 中无法正常工作,它使用下一个兄弟姐妹选择器 (~) http://api.jquery.com/next-siblings-selector/选择以下所有兄弟元素#customerid_c
,然后使用:eq http://api.jquery.com/eq-selector/选择器选择与另一个选择器匹配的第三个(从零开始)元素。
jQuery 有一个种类繁多的选择器 http://api.jquery.com/category/selectors/这可能可以取代索引的同级。如果您向我们展示您的 HTML,我们就可以为您找到一个。
其他注意事项:
您可以在一次调用中设置多个属性:
$(something).attr({ id: 'd_accountAddress', type: 'text' });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)