我想检查id没有值的页面上的任何元素,然后使用jQuery的<iframe id class="iframeCol"...></iframe>
<div id class="sectional">..</div>
删除它们。
当他们没有从CMS传递的值时,这就是id的外观:
var converter = new Converter<int, double>(f)
如何定位id如上所述的所有元素?
答案 0 :(得分:4)
您可以使用属性选择器来实现此目的:
$('[id=""]').remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe id class="iframeCol">Remove this</iframe>
<div id class="sectional">And remove this</div>
<div>Keep this</div>
<div id="foo">And this</div>
答案 1 :(得分:2)
也可以在没有jQuery的情况下完成:
Array.prototype.forEach.call(document.querySelectorAll('[id=""]'), function(node) {
node.parentNode.removeChild(node);
});
我知道你指定了jQuery的使用,但它仅供参考。
答案 2 :(得分:1)
$('body *').each(function() {
console.log($(this).attr('id'))
if ($(this).attr('id') == '') {
$(this).remove();
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe id class="iframeCol" ...></iframe>
<div id class="sectional">..</div>
<div class="sectional">123</div>
<div id='asd' class="sectional">asd</div>
&#13;
比较ID,如果等于空白删除
答案 3 :(得分:1)
如果您喜欢没有jQuery的vanilla JavaScript,可以使用:
document.querySelectorAll('[id=""]').forEach(function(item){
item.parentNode.removeChild(item);
});
<iframe id class="iframeCol">Remove this</iframe>
<div id class="sectional">And remove this</div>
<div>Keep this</div>
<div id="foo">And this</div>
简要说明:
Document.querySelectorAll() 使用CSS3 selector选择元素列表。
Array.prototype.forEach() 循环选择。
HTML DOM parentNode属性 获取父节点的节点。
Node.removeChild() 从DOM中删除子节点。
答案 4 :(得分:1)
//Alternate way
$('body').find('*[id=""]').remove();
var removedItems =
$('iframe, div')
.map(
function(){ if($(this).attr('id') == "") return this}
)
.remove()
.toArray();
console.log("See the removed items");
console.log(removedItems);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe id class="iframeCol">Remove this</iframe>
<div id class="sectional">And remove this</div>
<div>Keep this</div>
<div id="foo">And this</div>
<div id="">Remove this</div>