Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查jquery元素是否是'del'标记?_Javascript_Jquery_Css - Fatal编程技术网

Javascript 如何检查jquery元素是否是'del'标记?

Javascript 如何检查jquery元素是否是'del'标记?,javascript,jquery,css,Javascript,Jquery,Css,我在段落旁边有一个HTML复选框。当用户选中该复选框时,我想使用 为了增加删除,我应该用标记将段落包装起来 选中该框后,我能够用正确地包装该段落。但是,当用户取消选中该框时,我无法删除标记 我的代码似乎无法检查元素是否为del 我创造了一个小提琴手来告诉你发生了什么 在fiddler中,您将看到代码if(display.is('del')){..}失败,因此if语句中的代码永远不会被激发 我试图将html代码打印到控制台,以确保处理的是正确的元素,并且它清楚地显示了正确的代码 如何从del标记中

我在段落旁边有一个HTML复选框。当用户选中该复选框时,我想使用

为了增加删除,我应该用
标记将段落包装起来

选中该框后,我能够用
正确地包装该段落。但是,当用户取消选中该框时,我无法删除
标记

我的代码似乎无法检查元素是否为
del

我创造了一个小提琴手来告诉你发生了什么

在fiddler中,您将看到代码
if(display.is('del')){..}
失败,因此if语句中的代码永远不会被激发

我试图将html代码打印到控制台,以确保处理的是正确的元素,并且它清楚地显示了正确的代码

如何从
del
标记中打开我的段落

这是我的JS代码

$(function(){

  $('.custom_delete_file:checkbox').click(function(e){
    var self = $(this);
    var display = self.closest('.input-width-input').find('.custom_delete_file_name > p');

    if (self.is(':checked')) {
      display.wrapInner('<del></del>');
    } else {

      var firstDisplay = display.parent().children().first();
      console.log(firstDisplay.html())
      if (display.is('del')) { // this is failing
        firstDisplay.unwrap();
      }
    }
  });
});

名称
笔记
图画
浏览
删除
上载/zCmPgC5yMor77DaM50nTTnSnxh4y75e7B06WUFFM.jpeg


也许是这样的

var del = display.children().first();

console.log(del)

if (del.is('del')) {
    del.contents().unwrap();
}
del
is元素应该是
display
的第一个子元素。我使用了
console.log(del)
,因为使用
html()
可以有效地为您提供
innerHTML
,这并没有特别的帮助

在您的原始代码中,
display
是您的
p
元素,此行只是“上一行,下一行”,最后返回到
p

var firstDisplay = display.parent().children().first();

这就是你答案的答案

$(function(){

  $('.custom_delete_file:checkbox').click(function(e){
    var self = $(this);
    var display = self.closest('.input-width-input').find('.custom_delete_file_name > p');

    if (self.is(':checked')) {
      display.wrapInner('<del></del>');
    } else {

      $(".custom_delete_file_name:eq(0) p").html($(".custom_delete_file_name:eq(0) p del").html());     
    }
  });
});
并切换它。
这是最好的方法。

另一种方法。。。在展开之前,只需用del中的内容再次覆盖p

$('.custom_delete_file:checkbox').click(function(e){
    var self = $(this);
    var display = self.closest('.input-width-input').find('.custom_delete_file_name > p');

    if (self.is(':checked')) {
        display.wrapInner('<del></del>');
    }
    else {
        display.html(display.find('del').text());
    }
});
$('.custom_delete_file:checkbox')。单击(函数(e){
var self=$(这是);
var display=self.closest('.input width input')。find('.custom_delete_file_name>p');
if(self.is(':checked')){
display.wrapInner(“”);
}
否则{
html(display.find('del').text());
}
});
我希望有帮助

$('.custom_delete_file:checkbox').click(function(e){
    var self = $(this);
    var display = self.closest('.input-width-input').find('.custom_delete_file_name > p');

    if (self.is(':checked')) {
        display.wrapInner('<del></del>');
    }
    else {
        display.html(display.find('del').text());
    }
});