javascript - 这个 jQuery 代码片段可以缩短吗?

标签 javascript jquery

我刚刚开始使用 jQuery,虽然下面的代码可以完成工作,但我感觉它可以缩短。

var accountAddress = $(document.createElement("input")).addClass("readOnly")
        .attr("contentEditable", "false").attr("id", "d_accountAddress");

$("#customerid_c").next().next().next().append(accountAddress);

如果不清楚 - 我正在做的是创建新的输入标记,分配类并使其只读,然后将新输入的两个 TD 放置在某些已知文本的右侧。

更新:

这是我正在修改的简化 HTML。我添加内容的位置标有 ##1####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 中无法正常工作,它使用 Next Siblings Selector (~)选择 #customerid_c 之后的所有同级元素,然后使用 :eq选择器选择与另一个选择器匹配的第三个(从零开始)元素。

jQuery 有一个 large variety of selectors这可能可以取代索引的同级。如果您向我们展示您的 HTML,我们就能为您找到一个。

其他说明:

您可以在一次调用中设置多个属性:

$(something).attr({ id: 'd_accountAddress', type: 'text' });

关于javascript - 这个 jQuery 代码片段可以缩短吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492271/

相关文章:

javascript - 如何获取范围内的 Facebook 地点列表

javascript - 无法用 tr 替换表内的指令

javascript - 更改 jquery datetimepicker 中的初始最小日期

javascript - 设置溢出 :hidden to body/html hides scrollbars but does not disable scrolling in Firefox

php - 如何在用户登录时使用 PHP session 显示隐藏内容

javascript - 在 Docker 容器内开发时启用 VS Code IntelliSense

javascript - 在javascript中一个接一个地调用同一个onclick事件的两个不同函数

javascript - Json 字符串结果用 JavaScript 计数

javascript - 改进脚本的建议

javascript - 如何定位和禁用 UL 列表中的第 n 个 LI?