Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 在追加之前检查HTML元素是否存在_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在追加之前检查HTML元素是否存在

Javascript 在追加之前检查HTML元素是否存在,javascript,jquery,html,Javascript,Jquery,Html,在追加文档之前,我需要一种方法来检查文档中是否存在动态创建的隐藏输入元素 我知道也有类似的问题,但我的问题与他们不同,因为其他问题似乎是基本的元素附加选择器,例如 if ($('#button').length) 检查具有#按钮id的元素是否已存在 然而,在我的代码中,当我动态创建input元素时,它们的name-value属性将不同。因此,我需要在附加它之前,检查循环中是否存在整个元素。在jQuery中有这样做的方法吗 $('input[type=radio]:checked').each(

在追加文档之前,我需要一种方法来检查文档中是否存在动态创建的隐藏输入元素

我知道也有类似的问题,但我的问题与他们不同,因为其他问题似乎是基本的元素附加选择器,例如

if ($('#button').length)
检查具有
#按钮
id的元素是否已存在

然而,在我的代码中,当我动态创建
input
元素时,它们的name-value属性将不同。因此,我需要在附加它之前,检查循环中是否存在整个元素。在jQuery中有这样做的方法吗

$('input[type=radio]:checked').each(function(){

//Something like this
if($('<input type="hidden" name="data[' + $(this).val() + ']" value="' + $(this).val() + '" />').length)
 {
 $('#addCharacters').append('<input type="hidden" name="data[' + $(this).val() + ']" value="' + $(this).val() + '" />');
 }
});
$('input[type=radio]:选中')。每个(函数(){
//像这样的
如果($('').length)
{
$('#addCharacters')。追加('');
}
});
您需要使用和选择器:

if($('input[type="hidden"][name="data[' + $(this).val() + '"][value="' + $(this).val() + '"]').length)

使用jQuery,您可以使用该函数来测试元素/元素序列是否符合指定的条件。这非常有用,因此您不必担心转义字符串。例如:

$('input:radio:checked').each(function(){
    var cur = $(this).val();
    if(!$('#addCharacters input:hidden')
        .is(function(i,e){ return e.value==cur && e.name=='data['+cur+']'; }))
    {
        // Append new element
    }
});
如果要检查的无线电元素很多,可能需要将匿名函数移到其他地方,这样就不会为要检查的每个无线电元素创建匿名函数


在一个迷你猜谜游戏中可以看到一个扩展性的例子:

你不能在append本身上使用回调吗?我不建议编辑,但在代码的末尾有一个额外的回调)