Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 如何根据数据属性和输入名称(即数组)查找元素_Javascript_Jquery - Fatal编程技术网

Javascript 如何根据数据属性和输入名称(即数组)查找元素

Javascript 如何根据数据属性和输入名称(即数组)查找元素,javascript,jquery,Javascript,Jquery,我有以下html标记: //这是ajax成功的结果 成功:功能(响应){ if(response.success){ $(“[data input=”+response.field+“]”)。父项(“.file wrapper”)。查找(“[data item=”+response.item+“]”))。删除(); } } 身份证/护照 上传文件 链接到image.jpeg 相反,要使用父母,您可以使用 而父元素获取当前匹配元素集中每个元素的祖先,可选地通过选择器过滤 通过测试元素本身并在D

我有以下html标记:

//这是ajax成功的结果
成功:功能(响应){
if(response.success){
$(“[data input=”+response.field+“]”)。父项(“.file wrapper”)。查找(“[data item=”+response.item+“]”))。删除();
}
}

身份证/护照
上传文件
链接到image.jpeg

相反,要使用父母,您可以使用

而父元素获取当前匹配元素集中每个元素的祖先,可选地通过选择器过滤

通过测试元素本身并在DOM树中向上遍历其祖先,获取与选择器匹配的第一个元素

如果ajax返回的值是字符串,则可以使用JSON.parse对其进行转换

我的例子是:

$(函数(){
var response='{“success”:true,“errors”:false,“field”:“director\u front\u passport”,“num”:“0”,“item”:“1”}';
$(“[data input=”+response.field+“]”)。最近的(“.file wrapper”)。查找(“[data item=”+response.item+“]”))。删除();
});

身份证/护照
上传文件
链接到image.jpeg

此示例演示了如何在JQuery中使用多个选择器来获取具有更多属性的元素:

<h1 name="director_front_passport" data-item="1">Text to be deleted after 3 seconds.</h1>

<script type="text/javascript">
    setTimeout(function (){
        $("[name='director_front_passport'][data-item='1']").remove();
    }, 3000);
</script>
3秒钟后要删除的文本。
setTimeout(函数(){
$(“[name='director\u front\u passport'][data item='1']”。删除();
}, 3000);

事实上,我需要使用
数据输入=director\u front\u passport
查找输入,但也需要使用
数据项=
。我发现此输入带有:$(“[data input='”+response.field+“]]”)。但如何将条件也添加到该字段中,使其具有
数据项=1
?我会将这两个条件都放在选择器中。请参阅此链接:我将发布一个简短的答案,您的代码可以正常工作。问题似乎在别处。看看这个简化的提琴:您确定您的ajax返回的是JSON而不是字符串吗?您是否在ajax调用中添加了“json”参数?同时从director\u front\u Passports中删除[]对不起,我不正确。我需要找到数据输入为response.field的元素,该元素的数据项为response.item,然后我需要找到class=image\u name的元素并将其删除。在这种情况下,我需要删除“指向image.jpeg的链接”文本。@mistery_girl若要删除“指向image.jpeg的链接”,您可以使用:$(“[data input=”+response.field+“]”)。最接近的(“.file wrapper”)。查找(“.image_name”)。删除();对不起,我解释得不对。我混淆了这些数据属性。我有多个div具有相同的字段输入名称,因此我想使用1data item
来区分它们。我找到了用这个名称和数据项查找输入的方法$(“输入[name^='”+response.field+“'][data item='”+response.item+“']”)。父项('.file wrapper')。查找(“.image_name”)。删除()`@小姐,我明白了。再次抱歉,但是你确定父母是正确的方法而不是最接近的方法吗?