我有table
和div
,div
的CSS属性设置为display: none
(不可见),我需要添加div
}动态地对我表中的每个td
。我考虑过使用jQuery获取div
并将其添加到我的表的td
中,并将CSS属性更改为display: block
(可见)。有可能吗?
我的代码:
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
<div style="display:none">
<label id="addVideo" for="uploadFileVideo">Add Video</label>
<input id="uploadFileVideo" type='file'style="width:300px;visibility:hidden"/>
</div>
答案 0 :(得分:1)
将班级.my-table
和.my-div
添加到table
和div
,然后使用jQuery:
$('.my-table td').each(function () {
$('.my-div')
.clone()
.appendTo(this)
.show();
});
它的作用:
$('.my-table td').each(f)
:搜索所有td
并为每个function
执行指定的.clone()
.appendTo(this)
:克隆不可见的div(将被添加到多个位置)td
:附加到匹配的this
(DOM
引用匹配的td
元素.show()
)注意:虽然这会按照您的要求执行,但html将无效,因为您将生成具有相同ID的多个元素,这是非法的。因此
答案 1 :(得分:1)
使用cloneNode
。并使用appendChild
var tds = document.querySelectorAll('td');
tds.forEach(function(td) {
var newDiv = div.cloneNode();
newDiv.style.display = 'block';
td.appendChild(newDiv);
});
不需要jQuery! ;)
答案 2 :(得分:0)
你能试试吗?
这样的事情!
的CSS
<style type="text/css">
td { border: 1px solid black; }
</style>
脚本
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
function tryIt(){
$("td").each(function(){
$(this).html($('.testDiv').html());
});
}
</script>
HTML
<body>
<table>
<tr>
<td></td>
<td></td>
</tr>
</table>
<button onclick="tryIt()">Try It</button>
<div class="testDiv" style="display:none">
<label id="addVideo" for="uploadFileVideo">Add Video</label>
<input id="uploadFileVideo" type='file'style="width:300px;"/>
</div>
</body>
答案 3 :(得分:0)
以下将帮助您
HTML
<body>
<table class="myTable">
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
<div class="testDiv" style="display:none">
<label id="addVideo" for="uploadFileVideo">Add Video</label>
<input id="uploadFileVideo" type='file'style="width:300px;"/>
</div>
脚本:
var $table = $('.myTable');
$($table).find('td').append($('.testDiv').show());
演示:
<强> Running Demo 强>