使用jquery获取上一个标题h3
我有一个关于jquery的问题。 以下是示例:使用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
<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;};};}发布另一个问题,这样我可以帮助您。代码很难阅读,我已经发布了一个新问题,你可以在这里查看