Javascript 是否存在删除单个HTML标记而不是整个节点的方法?
我有以下代码Javascript 是否存在删除单个HTML标记而不是整个节点的方法?,javascript,html,Javascript,Html,我有以下代码 <noscript> <img src="url/HugeCatPicture.jpg" name="I dont want this image to auto load"> </noscript> 我只想删除开头的noscript标签,留下结尾的noscript标签 这可以用纯JavaScript实现吗? 这样的行动可能吗 (请不要使用javascript库解决方案)Html文档是基于节点的,如果删除noscript,则它的子文档也会被
<noscript>
<img src="url/HugeCatPicture.jpg" name="I dont want this image to auto load">
</noscript>
我只想删除开头的noscript标签,留下结尾的noscript标签
这可以用纯JavaScript实现吗?
这样的行动可能吗
(请不要使用javascript库解决方案)Html文档是基于节点的,如果删除
noscript
,则它的子文档也会被删除。为此
noscript的子元素
noscript
及其父DOMnosrcript
并将子元素附加到noscript
父节点我认为这是对
标记的不当使用。从aboutnoscript
:
noscript元素用于向不支持脚本的用户代理提供不同的标记
您可以将纯javascript用作:
<script>
// on page reload use this
var str = '<noscript><img src="image_url" name="test"></noscript>'
var res = str.replace("<noscript>", "");
document.getElementById("your_id").innerHTML = res;
</script>
//在“重新加载”页面上,使用以下命令
var str=''
var res=str.replace(“,”);
document.getElementById(“您的id”).innerHTML=res;
你能像var a=''那样做吗;a、 替换(“,”)
为什么要这样做?原因可能会引导您找到解决方案。@debin谢谢,但我不能按照您的建议去做,因为我的示例中的标记已经硬写在html页面上了。我需要删除至少一个标记的方法,以便浏览器可以再次访问img标记进行加载。为什么要这样做?@OriDrori我希望删除一个noScript标记,因为我无法访问包装在noScript标记中的内容。我之所以不使用脚本标记,首先是为了防止自动加载大型图像。我正在优化一个在一个页面上包含300多个图像的项目,我不希望添加javascript来更新所有300多个图像的src;在noscript标记中包装HTML元素会使javascript无法访问其内容(子节点),除非浏览器未启用javascript。所以这个答案不会有帮助。@ReallyNiceCode,你能再看一遍你的评论并给我解释一下吗?除非那部分发生了,否则怎么会发生呢?+您可以访问noscript元素及其textContent
或innerHTML
,然后需要以不同的方式使用
。编写防止自动加载
的脚本。我刚才说通过阅读alt
attribute.@kaido简单地说:“JavaScript不能简单地读取标记的子元素。所以这个答案是行不通的。请运行一个简单的测试,看看我在说什么@ReallyNiceCode,是的,它可以读取其内容,但此内容不是DOM的一部分,因此不能对其使用直接DOM选择。但是,您可以访问此节点的textContent并对其进行解析。但这比在设置IMG的src之前在IMG上添加数据属性更糟糕。如果您关心性能,那么修改DOM结构300次不是一个好主意。谢谢,我知道该标记旨在为不支持javaScript或禁用javaScript的浏览器提供回退内容。但我用它作为一个优化黑客。我希望防止标签自动加载其图像。。但我不希望手动编辑超过300个标签。在noscript标记中包装图像标记成功地阻止了图像自动加载。。。但现在我无法动态访问noscript标记中的内容。解决方案是不要将其用作优化黑客,因为这是错误的。谢谢,但您的解决方案意味着我正在使用javascript动态添加标记。。。相反,我将标签硬编码到页面上;然后在页面加载时,我希望使用javascript删除一个noscript标记。