2011-08-17 81 views
2

我有一个单选按钮,看起来像这样:如何从html输入中获取属性值?

<input class="MCQRadio" id="MCQ" mcq-id="1" name="MCQ" question-id="1" type="radio" value="MCQ" /> MCQ 

[编辑]

当我点击单选按钮,和几个单选按钮具有相同的类名, 我怎么retrive的问题ID值和特定按钮的mcq-id值?最好用jQuery。

我已经成立了一个单击处理程序是这样的:

$(document).ready(function() { 

    $('.MCQRadio').click(function() { 
+1

我试过,但我不知道在合适的词来搜索,为此效果并不有用:( – Nanek

回答

0

大多数给出的答案都是正确的。我会做一个补充,以避免遍历DOM两次找到您的单选按钮元素。

//Store the jQuery object in a variable so that it's only retrieved once 
var $myRadio = $('#MCQ'); 

//Get your attributes 
var mcq-id = $myRadio.attr("mcq-id"); 
var question-id = $myRadio.attr("question-id"); 

你也可以连接到所有的单选按钮(按类别选择器)的点击事件,并抢在事件处理程序的属性:

$('.MCQRadio').click(function() { 
    //Use $(this) to grab the attribute value of the selected element 
    var mcq-id = $(this).attr('question-id'); 
    var question-id = $(this).attr('mcq-id'); 
}); 
+0

这是我正在寻找的答案。虽然我不认为你可以在变量名中使用“ - ”,所以我将它改为mcqid和questionid。谢谢。 – Nanek

3
var mcq-id = $('#MCQ').attr("mcq-id"); 
var question-id = $('#MCQ').attr("question-id"); 
+2

我不会在这里使用基于类的选择器,因为你有一个可用的ID,并且他没有给出任何迹象表明这个元素是使用该类的页面上唯一的一个。 – heisenberg

+0

公平点,但他没有指定他不希望我们使用这个类,但你是对的 – rickyduck

+1

我编辑了我的问题,几个单选按钮的类名相同,我需要从特定的单选按钮中获取值,当我点击 – Nanek

3
$('#MCQ').attr('question-id') 
$('#MCQ').attr('mcq-id') 
-1

它们都将返回所需的值。

$('#MCQ').attr('mcq-id') 
$('#MCQ').attr('question-id') 
+1

不,它不会,它会寻找一个元素ID = MCQRadio。如果你想按类名选择,你可以使用'。'而不是'#'。 – heisenberg

+0

这不起作用。在上面的例子中,没有元素的ID为“MCQRadio”。 –

0

其他的答案已经告诉你如何获得特定的属性。但是,因为你在编辑补充说,你想从被点击的特定的一个属性,你可以尝试:

$('.MCQRadio').click(function() { 

    $(this).attr('question-id'); 
    $(this).attr('mcq-id'); 

});