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本身上使用回调吗?我不建议编辑,但在代码的末尾有一个额外的回调)