Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
使用jquery获取上一个标题h3_Jquery_Html_Onclick - Fatal编程技术网

使用jquery获取上一个标题h3

使用jquery获取上一个标题h3,jquery,html,onclick,Jquery,Html,Onclick,我有一个关于jquery的问题。 以下是示例: <h3>Question 1</h3> <input type="hidden" id="getques" value="" name="ques1"> <input type="radio" id="banswer1" name="answer1" onclick="getvalue()" value="1"> <input type="radio" id="banswer1" name="a

我有一个关于jquery的问题。 以下是示例:

<h3>Question 1</h3>
<input type="hidden" id="getques" value="" name="ques1">
<input type="radio" id="banswer1" name="answer1" onclick="getvalue()" value="1">
<input type="radio" id="banswer1" name="answer1" onclick="getvalue()" value="2">
<input type="radio" id="banswer1" name="answer1" onclick="getvalue()" value="3">

<h3>Question 2</h3>
<input type="hidden" id="getques" val="" name="ques2">
<input type="radio" id="banswer2" name="answer2" onclick="getvalue()" value="1">
<input type="radio" id="banswer2" name="answer2" onclick="getvalue()" value="2">
<input type="radio" id="banswer2" name="answer2" onclick="getvalue()" value="3">
现在假设我点击任何一个单选按钮。。它需要调用一个函数getvalue,该函数将获取上一个标题h3的文本并将其存储在隐藏字段value中。。 你能给我一个解决方案吗

我有一个脚本,它可以获取页面中所有标题h3的文本。相反,我只需要获取上一个标题


注意:我使用相同的id banswer1、banswer2是有原因的。。请忽略这一点。

如果我理解你的意思,你可以这样做:

编辑

如@Dhaval Marthak所述,更改为最接近上一个,查找到下一个

function getvalue(){
    //find h3
    var h3 = $(this).prev('h3');
    //get text
    var text = h3.text();
    //find hidden
    var hidden = h3.next();
    //set value
    hidden.val(text);
}
我建议:

$('input[type=radio"]').on(function () {
    var self = $(this),
        head = self.prevAll('h3:first'),
        hidden = self.prevAll('input[type="hidden"]:first');
    hidden.val( head.text() );
});
参考资料:

. . .
您可以使用@Albet的代码,但应该使用prev函数,而不是最近的代码

function getvalue(){
    //find h3
    var h3 = $(this).prev('h3');
    //get text
    var text = h3.text();
    //find hidden
    var hidden = h3.find('input[type=hidden]');
    //set value
    hidden.val(text);
}
根据文件规定:

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

但您真正想要的是获得输入的第一个兄弟姐妹。

您必须使用

$[type='radio'].changefunction { var hidden=$this.prevAll[type='hidden']; var h3=$this.prevAllh3; hidden.valh3.text; alerthidden.val;//在代码中测试删除 }; 问题1 问题2
仅供参考的id应该是唯一的。是的,我知道,先生。。我告诉你我用它是有原因的。。我以后再换。。这只是为了测试…这不起作用,先生,我正在测试!如果我们点击第二个问题单选按钮,每次都会返回h3!嗯,我很惊讶;您可以使用:first选择器尝试更新的方法吗?我不确定,但我认为选择器应该返回遍历过程中遇到的第一个匹配,而方法可能会将它们返回到DOM中的顺序中。但是,我不敢肯定。是的,我还检查了你更新的其他解决方案。它仍然不起作用,但是应该有办法来解决它,但是如果我们考虑从下到下的遍历,它应该检查:首先。但我还是很惊讶。隐藏不是在h3里面,你不需要找到它,只需要像得到h3一样得到它!正如达瓦尔所说。。。上一个不工作。。隐藏不在h3内。。他们一行一行地跟着。。没有养育之道..嘿thanx fabio。。它工作得很好:只要你能帮我做一件事。。。?单击单选按钮两次获取的值。。也就是说,单击第一个得不到它,单击另一个得到值。。我用了文件,准备好了。。但是它仍然不起作用。。帮帮我?我的密码。。。函数getvalue{$document.readyfunction{$[type='radio'].changefunction{var hidden=$this.prevAll[type='hidden'];var h3=$this.prevAllh3;hidden.valh3.text;//alerthidden.val;};};}发布另一个问题,这样我可以帮助您。代码很难阅读,我已经发布了一个新问题,你可以在这里查看