我有一个包含多张图片的textarea。所有图像都有一个id,我想循环遍历所有这些图像并检查是否需要onclick事件(取决于id) 如果不需要onclick事件,我需要检查是否有一个并删除它。如果需要我仍然需要删除它并添加另一个(因为onclick的值可以更改)
我该怎么做?
<img id="slideShowImage_3" style="border: 1px solid black; cursor: pointer;" title="3" onclick="loadSlideShow('7','open','3','','2')" src="uploads/nieuws/7/1363788115.jpg" alt="3" />
<img id="slideShowImage_3" style="border: 1px solid black; cursor: pointer;" title="3" src="uploads/nieuws/7/1363788115.jpg" alt="3" />
答案 0 :(得分:1)
对于一个非常简单的HTML,你可以这样做:
$('#text2').html($('#text1').html().replace(/onclick="[^"]*"/g,''));
但要非常小心:在一般情况下解析正则表达式中的HTML会失败,所以只有在知道HTML来自何处以及它是什么时才能这样做。
如果您的HTML格式正确,您也可以这样做:
var e = $('<div>'+$('#text1').val()+'</div>');
e.find('img').attr('onclick','');
$('#text2').html(e.html());
无论如何,请注意,这不能用作安全措施。
答案 1 :(得分:1)
可能不酷,但你可以做类似
的事情function cleanCode() {
var els = $($('#text1').val());
els.each(function(i, v){
var $this = $(this);
if($this.attr('id') == 'slideShowImage_1'){
$this.removeAttr('onclick')
}
});
console.log($('<div></div>').append(els).html())
}
演示:Fiddle
答案 2 :(得分:1)
试试这个:
function cleanCode() {
var container = $('<div>' + $('#text1').val() + '</div>');
container.find('img').removeAttr('onclick');
$('#text2').html(container.html());
}