我是HTML和JavaScript的新手。我需要使用3Dmol.js,所以我按照教程操作,我有一段工作代码:
<script src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js"></script>
<div id="element1" style="height: 400px; width: 400px; position: relative;" class='viewer_3Dmoljs' data-pdb='1a5j' data-backgroundcolor='0xffffff' data-style='cartoon' data-select1='resi:10' data-style1='stick:color=0x00FFFF'>
</div>
我想运行一个返回一些值的函数并将其放在data-select1 ='resi:x'中,其中x就是这个值。
<script>
function a(x) {
return x;
}
</script>
所以,如果我跑:
a(2);
div更改为:
<script src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js"></script>
<div id="element1" style="height: 400px; width: 400px; position: relative;" class='viewer_3Dmoljs' data-pdb='1a5j' data-backgroundcolor='0xffffff' data-style='cartoon' data-select1='resi:2' data-style1='stick:color=0x00FFFF'>
</div>
最简单的方法是什么?
答案 0 :(得分:2)
使用HTMLElement.dataset设置data-select1
属性
function a(x) {
var el = document.getElementById('element1')
// will set `data-select1`
el.dataset.select1 = 'resi:'+x
return x;
}
a(2);
<script src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js"></script>
<div id="element1" style="height: 400px; width: 400px; position: relative;" class='viewer_3Dmoljs' data-pdb='1a5j' data-backgroundcolor='0xffffff' data-style='cartoon' data-select1='resi:10' data-style1='stick:color=0x00FFFF'>
</div>
答案 1 :(得分:1)
我建议使用dataset
。
function a(x){
var element1 = document.getElemenyById('element1');
if (element1) element1.dataset.select1 = "resi:" + x;
}
如果您需要支持IE 8+,另一种选择是直接通过setAttribute
。检查数据集here上的浏览器兼容性。
function a(x){
var element1 = document.getElemenyById('element1');
if (element1) element1.setAttribute("data-select1:", "resi:" + x);
}
答案 2 :(得分:1)
试试这个:
<script>
function a(x) {
$('#element1').data('select1','resi:'+x);
console.log($('#element1').data('select1'));
}
</script>
答案 3 :(得分:1)
数据集很棒,但浏览器支持只是如此。您也可以使用getAttribute()
。我借了一些@Kevin Jantzer的代码(我不能发表评论,大声笑)。
function a(x) {
var el = document.getElementById('element1');
// will set `data-select1`
el.getAttribute('data-select1' == 'resi:' + x);
return x;
}
console.log(a(2));
<script src="http://3Dmol.csb.pitt.edu/build/3Dmol-min.js"></script>
<div id="element1" style="height: 400px; width: 400px; position: relative;" class='viewer_3Dmoljs' data-pdb='1a5j' data-backgroundcolor='0xffffff' data-style='cartoon' data-select1='resi:10' data-style1='stick:color=0x00FFFF'>
</div>