如何从“ul”动态标签获得ID
我有下一种情况。 我在HTML代码中有一个按钮。当我按下按钮中的其中一个选项时,我调用一个函数来构造其他按钮的内容。如何从“ul”动态标签获得ID
我在HTML代码中有一个ul标签,里面有一个li标签列表。这个li标签的值是用查询数据库动态生成的。 当我从li标签生成选项时,我为彼此分配了不同的ID。 在这里你可以看到,我有第二个按钮的代码:
<div class="dropdown" class="btn-group-lg" id="test"> <button name="selSensor" id="seltipoSensor" class="btn btn-primary dropdown-
toggle" type="submit" data-toggle="dropdown">
<span>Select one option</span>
</button>
<ul class="dropdown-menu" id="test2">
</ul>
</div>
在这里你可以看到,我要生成按钮内部的李标签的代码。
<script type="text/javascript"> function selectedUbi(ubicacion){
var datos = {
"arg" : ubicacion
};
$.ajax({
data: datos,
url: 'condatabase/calculos_bdd2.php',
type: 'post',
success: function (response) {
if(response){
document.getElementById("test2").innerHTML = "";
var ul = document.getElementById("test2");
for (i=0;i<response.length;i++){
var li = document.createElement("li");
li.appendChild(document.createTextNode(response[i][i+1]));
li.setAttribute("id", "element"+i);
li.setAttribute("onclick",myFunction);
ul.appendChild(li);
}
}
},
dataType:"json"
});
}
</script>
我已经是问题... ?我怎样才能从L1标签,我动态生成的ID?
我试图使用“getElementByID”和“getElementByTagName”,但由于ID是动态的,我不知道要捕获该值。
例如按钮具有下一个选项以选择: - 苹果(ID =部件0) - bannana(ID =元素1) - 胡萝卜(ID =在element2)
当我选择选项“bannana “我需要获得ID”element1“。
回答:
您可以在容器上使用querySelectorAll来获取元素列表,然后阅读其属性ID。
function getIds(container){ return [...container.querySelectorAll('li[id]')].map(li => li.getAttribute('id'));
}
不过,我宁愿建议创建一个数据抽象层来处理与数据获取等操作......为避免你的HTML结构和你的“逻辑”代码的强耦合。
function createStore(){ return {
async fetch(arg){ /*... return your data (and cache it etc */ }
};
}
让你的按钮处理程序可以共享 “存储”
const store = createStore(); document.getElementBy('button1').addEventListener('click',() => {
store.fetch().then(data => { /* do something with your data like updating html ... */})
});
document.getElementBy('button2').addEventListener('click',() => {
store.fetch().then(data => { /* do something with your data like updating html ... */})
});
//etc
以上是 如何从“ul”动态标签获得ID 的全部内容, 来源链接: utcz.com/qa/266540.html