【发布时间】:2014-11-14 21:42:11
【问题描述】:
(请记住,这需要与 HTML 电子邮件兼容,因此必须使用表格和过时的属性 - 例如 bgcolor。)
我正在尝试更改具有特定 id 的所有 TD 的 bgcolor,该 id 在 JavaScript 的数组中定义。我尝试了许多类似的例子,但都没有运气,例如:
var yellowIDs = ["1201", "1204", "0116"];
for (i = 0; i < yellowIDs.length; i++) {
document.getElementById(yellowIDs[i]).bgcolor = "#ffff00";
}
HTML 部分
<td id="1201" align="center" width="35" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Arial, Helvetica, sans-serif;color: #fff;font-size: 16px;font-weight: bold;background-color: #D83826;line-height: 100%;padding: 5px;" valign="top">Sun</td>
我确定我错过了很多,我很感激任何和所有的帮助。谢谢。
【问题讨论】:
-
CSS
background-color甚至可以在电子邮件中使用。问题可能是您不允许在电子邮件中执行 JavaScript,或者您使用以数字开头的 ID(它在 HTML5 中有效,但某些 JS 实现不允许getElementById('123'))。 -
@pawel 我还没有在电子邮件本身中尝试过这个。我正在尝试先在浏览器中解决它。然后我会参加那场战斗:)
-
通过在开头添加一个字母来更改ID,例如
id="td1201"(数组中的一个)-您在cmets中提到的错误可能是由getElementById为ID返回null引起的以数字开头。但我认为这是在浪费你的时间,因为没有一个健全的电子邮件客户端会允许你执行 JS。 -
顺便说一句,也许会发布一个小提琴?在这里,它适用于数字和字母数字 id:jsfiddle.net/45wusjds/1
-
在 gmail/outlook 中你不能使用 JS,你只能使用内联样式,比如text
标签: javascript arrays html-email