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

标签 javascript jquery html

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

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

if ($('#button').length)

检查带有 #button id 的元素是否已经存在。

但是在我的代码中,当我动态创建 input 元素时,它们的名称值属性将不同。所以我需要在追加之前判断整个元素是否在循环中一一存在。有没有办法在 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() + '" />');
 }
});

最佳答案

通过 jQuery,您可以使用 .is()函数来测试元素/元素序列是否匹配您指定的条件。这特别有用,因此您不必担心转义字符串。例如:

$('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
    }
});

如果您有很多 radio 元素要检查,您可能希望将匿名函数移到其他地方,这样就不会为您正在检查的每个 radio 元素都创建它。

在此处查看迷你猜谜游戏中的扩展示例:https://jsfiddle.net/bv6abj7L/2/

关于javascript - 在追加之前检查 HTML 元素是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550387/

相关文章:

javascript - 如何设置 WebView 以允许从本地或远程文件在 Canvas 上获取 getImageData?

javascript - 在javascript中交换html表格元素(完整对象)

html - 我无法调整导航栏 css/html 中下拉菜单的大小

html - 如何在没有id或class的输入字段中添加CSS?

javascript - 如果表单为空,则阻止提交表单

javascript - 如何为 HTML 分离 JavaScript 脚本

javascript - Firebase GeoFire : Is It Possible to Remove Multiple Keys at Once using geoFire. 删除()?

javascript - 将函数传递给缺少参数的 jQuery

javascript - ASP .NET MVC、DateTimePicker 和 jQuery 验证

javascript - 在复选框上显示框或输入框