Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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,这个问题我快要发疯了。jQuery选择器的任何形式似乎都无法动态查找链接上方的任何元素。我试图访问链接上方的元素并将其隐藏。使用诸如parent、prev、before、closest等内容。将显示一个非空对象,但它不会响应hide方法 你可以试试。最近的和。找到 尝试按以下方式更换链接: <a href="javascript:void(0)" id="test_link" css_class="small" onclick="javascript:remove_fields($(thi

这个问题我快要发疯了。jQuery选择器的任何形式似乎都无法动态查找链接上方的任何元素。我试图访问链接上方的元素并将其隐藏。使用诸如parent、prev、before、closest等内容。将显示一个非空对象,但它不会响应hide方法

你可以试试。最近的和。找到


尝试按以下方式更换链接:

<a href="javascript:void(0)" id="test_link" css_class="small" onclick="javascript:remove_fields($(this))">Remove Ingredient</a>

我不确定。但也许这就是问题所在。因为我记得以前我对“this”有问题,当我替换它时,它执行了任务。

您不能使用.val更改隐藏输入的value属性。您需要使用:

$(link).prev("input[type=hidden]").attr('value', '1');
因为我不确定你想用这个输入做什么,我就这样让它过去

.prev fn仅用于结构中的前一个元素。由于input是a的前一个元素,所以不能这样选择div。例如,您可以使用

$(link).siblings('div').hide();

如果你把代码分成几部分,事情就会变得简单

首先我获取了“链接”,从中我获取了它上面最近的div,然后我获取了输入

我没有对您的代码做太多更改

函数删除\u字段链接 { var$link=$link; var$divToHide=$link.closest'div'; $divToHide.findinput[type='hidden'].val'1'; $divToHide.hide } 成分名称
你是否愿意以其他方式实现同样的目标?你的HTML结构不适合做这样的事情,我知道你的意思是形状或形式的隐喻,但这是javascript,形状和形式意味着非常不同的事情。当心轻率的问题标题!你的变量是div_to_hide,但在下一行中,你将其拼写为divToHide。在你的演示中使用简单但描述性的变量,所有的下划线和冗长的名称让我头晕目眩。对不起,divToHide是一个打字错误。这不是问题所在。当它被纠正时,它不会改变问题。另外,将隐藏值指定给1正是我试图做的。感谢您的建议-不幸的是,这没有帮助:
$(link).prev("input[type=hidden]").attr('value', '1');
$(link).siblings('div').hide();