用户单击时如何在 Dart 中转置 html 个元素
How to transpose html elements in Dart when user clicks
我有一个或多个 html 元素的集合,如下所示:
<div class="input-group symbol-group">
<span class="input-group-addon symbol"></span>
<input type="number" class="form-control" id="cost" />
</div>
在页面的更上方,我有一个 TextInputElement
可以将任何 span.symbol
的文本更改为其中输入的任何内容(即 £、$ 等)。到目前为止,还不错。
我想要做的是,根据用户选择,将这些范围中的任何一个与相应的 TextInputElement
交换,以便 span.symbol
出现 after TextInputElement(或 before 如果已选择 after。
我该怎么做?
编辑:
对不起,我忘了添加我当前的代码(有效但假设元素中只有 2 children):
<Element>
..onClick.listen((Event e) {
querySelectorAll('div.symbol-group').forEach((DivElement e) {
Element e1 = e.children.first;
Element e2 = e.children.elementAt(1);
e.children.clear();
e.append(e2);
e.append(e1);
});
});
我仍然无法理解你想要完成的事情。
看看我的尝试并评论它如何还没有做你需要的。
..onClick.listen((Event e) {
querySelectorAll('div.symbol-group').forEach((DivElement e) {
Element e1 = e.querySelector('span.input-group-addon.symbol');
Element e2 = e.querySelector('input.form-control');
int i1 = e.indexOf(e1);
int i2 = e.indexOf(e2);
if(i1 < i2) {
e1.remove();
e.insert(i1, e1);
}
});
});
我有一个或多个 html 元素的集合,如下所示:
<div class="input-group symbol-group">
<span class="input-group-addon symbol"></span>
<input type="number" class="form-control" id="cost" />
</div>
在页面的更上方,我有一个 TextInputElement
可以将任何 span.symbol
的文本更改为其中输入的任何内容(即 £、$ 等)。到目前为止,还不错。
我想要做的是,根据用户选择,将这些范围中的任何一个与相应的 TextInputElement
交换,以便 span.symbol
出现 after TextInputElement(或 before 如果已选择 after。
我该怎么做?
编辑: 对不起,我忘了添加我当前的代码(有效但假设元素中只有 2 children):
<Element>
..onClick.listen((Event e) {
querySelectorAll('div.symbol-group').forEach((DivElement e) {
Element e1 = e.children.first;
Element e2 = e.children.elementAt(1);
e.children.clear();
e.append(e2);
e.append(e1);
});
});
我仍然无法理解你想要完成的事情。
看看我的尝试并评论它如何还没有做你需要的。
..onClick.listen((Event e) {
querySelectorAll('div.symbol-group').forEach((DivElement e) {
Element e1 = e.querySelector('span.input-group-addon.symbol');
Element e2 = e.querySelector('input.form-control');
int i1 = e.indexOf(e1);
int i2 = e.indexOf(e2);
if(i1 < i2) {
e1.remove();
e.insert(i1, e1);
}
});
});