我的代码出现问题,根据条件设置SelectElement的选定选项:
@Override
public void setModel(String s) {
int children = this.getElement().getChildCount();
int i = 0;
while(i < children){
Node child = this.getElement().getChild(i);
final Element el = child.cast();
if (Element.is(el)) {
if(el.getAttribute("attribute_to_check") != null){
if(el.getAttribute("attribute_to_check").equalsIgnoreCase(s)){
SelectElement se = this.getElement().cast();
se.setSelectedIndex(i);
}
}
}
++i;
}
}
<option>
中的每个SelectElement
都有一个名为attribute_to_check
的唯一字符串属性,代码会将该属性与要选择的所需选项进行比较。
问题是,如果位于索引0的字符串允许将其称为option0
。
option0
,被选中的是option3
,option1
,则选择的选项是
option5
等等。这个跳过模式发生的代码有什么问题?
答案 0 :(得分:1)
我打赌选择中有非元素儿童。
仅在i
或更好地循环Element.is(el)
时尝试递增SelectElement#getOptions()
。