如何通过ID和值获取Element?

时间:2018-04-20 19:07:58

标签: javascript jquery asp.net-mvc

如何获取包含id和value的元素?这些是我的要素。我想禁用这3个单选按钮。

 <input id="selectedAnswerIDforQ15" name="selectedAnswerIDforQ15" type="radio" value="78" />

 <input id="selectedAnswerIDforQ15" name="selectedAnswerIDforQ15" type="radio" value="79" />

 <input id="selectedAnswerIDforQ15" name="selectedAnswerIDforQ15" type="radio" value="80" />

我的所作所为如下:

 document.getElementById("selectedAnswerIDforQ15").getElementByValue("78").disabled = true;
 document.getElementById("selectedAnswerIDforQ15").getElementByValue("79").disabled = true;
 document.getElementById("selectedAnswerIDforQ15").getElementByValue("80").disabled = true;

但这不起作用。所有三个单选按钮的ID都相同。

如果我只使用document.getElementById("selectedAnswerIDforQ15").disabled = true它只会禁用第一个单选按钮。所以我需要Id和Value的组合。请帮忙。

4 个答案:

答案 0 :(得分:1)

试一试:

 $("input[name='selectedAnswerIDforQ15'][value='78']").attr('disabled', disabled');
 $("input[name='selectedAnswerIDforQ15'][value='79']").attr('disabled', disabled');
 $("input[name='selectedAnswerIDforQ15'][value='80']").attr('disabled', disabled');

答案 1 :(得分:0)

按值选择(现代浏览器):

document.getElementById("someid");

按ID选择:

html

同一页面上具有相同ID的多个元素无效def __eq__(self, other): return self.__dict__ == other.__dict__ 。您应该使用ViewModel强烈键入radiobuttons的唯一ID和名称,而不是硬编码字符串值。

答案 2 :(得分:0)

您不能使用具有相同ID的多个元素,因为ID特定于一个元素。

您需要使用一个类,而不是选择所有类,我将使用.foo

您可以这样做

选择输入

var inputElements = document.querySelectorAll("foo");

然后,您需要迭代应用您的类的元素。

for(var i =0; inputElements.length > i; i++){

}

你会发现元素中包含你想要的值,我们会选择它并使用setAttribute()来禁用它。

for(var i =0; inputElements.length > i; i++){
    if(inputElements[i].value == "78" || inputElement[i].value == "79" || inputElements[i].value == "80"){
            inputElements[i].setAttribute("disabled", true);
    }
}

或者你可以做这样的事情

document.querySelector(".foo[value=78]").setAttribute("disabled", true);
document.querySelector(".foo[value=79]").setAttribute("disabled", true);
document.querySelector(".foo[value=80]").setAttribute("disabled", true);

答案 3 :(得分:0)

您不能对每个输入使用相同的ID,但仍然可以使用以下方法:

var elms = document.querySelectorAll("[id='selectedAnswerIDforQ15']");
var values = ['78', '79'];
for(var i = 0; i < elms.length; i++) 
    if (values.indexOf(elms[i].value) > -1)
        elms[i].setAttribute('disabled','disabled');