【发布时间】:2014-10-22 13:22:28
【问题描述】:
我想遍历一个元素,从列表中删除所有禁用的元素,以便只向用户呈现与他们相关的项目。所有这一切都发生在 Drupal 7 中,选择列表是从分类术语列表中填充的。我注意到两个问题,但首先这是我在自定义主题中的 javascript 文件:
(function($)
{
Drupal.behaviors.mytheme =
{
attach: function(context, settings)
{
var x = document.getElementById("edit-field-diplomatic-mission-und");
for (var j = 0; j < 10; j++) //Force loop
{
for (var i = 0; i < x.length; i++)
{
if (x.options[i].disabled == true)
{
x.remove(i);
}
}
}
}
};
})(jQuery);
循环不会遍历整个列表,而是在第 21 个或第 25 个选项附近随机中断。这就是为什么我在代码中有一个强制循环
禁用的元素在 Drupal 中根本不会被删除
就像一个注释,在它自己的独立格式上,相同的代码可以在整个列表中删除元素,没有循环:
<script>
$(document).ready(function ()
{
var x = document.getElementById("edit-field-diplomatic-mission-und");
for (var j = 0; j < 10; j++)
{
for (var i = 0; i < x.length; i++)
{
if (x.options[i].disabled == true)
{
x.remove(i);
}
}
}
});
</script>
请问我做错了什么?
【问题讨论】:
-
如果使用 Jquery:
$('select option:disabled').remove() -
我不确定您是否需要这样做。为什么你需要删除或删除禁用的选项?我的理解是你有一个显示给用户的列表,你不希望显示一些值。请详细说明
标签: javascript jquery drupal drupal-7