[英]How to get an element by name and set its value
應該有一個簡單的解決方案。 我需要按名稱獲取輸入元素並設置其值。
以下 Javascript 不起作用:
x = document.getElementsByName($('#questions').val());
x.value=this.value;
有使用 JQuery 的簡單解決方案嗎?
你正在混合普通的javascript和jQuery。 使用屬性選擇器。
看看我的樣本和這個jsFiddle演示
HTML
<input type="text" name="nameOfTheInputElement"/>
jQuery的
$(function() {
$("input[name='nameOfTheInputElement']").val("your value");
});
如果您因某種原因需要更改名稱是另一個元素中的值的元素,請執行此操作。 jsFiddle示范
HTML
<input type="text" id="questions" value="nameOfTheInputElement"/>
<input type="text" name="nameOfTheInputElement"/>
jQuery的
$(function() {
var name = $("#questions").val();
$("input[name='"+name +"']").val("your value");
});
getElementsByName()返回一個節點列表,因此你需要得到第一個getElementsByName(...)[0]
但是你已經在使用jQuery,所以使用它。 閱讀一些關於jQuery選擇器的教程
一個簡單,純粹的JavaScript(因此更快)的解決方案:
var x = document.getElementsByName(document.getElementById('questions').value)[0].value = this.value;
我知道jQuery的標語是“少寫,做多”,在很多情況下確實如此...... many cases !== always
,但是;-)
嘗試這個
var q = $("#question").val();
var x = $("input[name='" + q + "']").val();
在第二行,變量q,輸入中帶有id'question'的名稱,將用'括起來',並且可以包含任何支持的字符,如空格,:, - 等
如果您需要組件的值而不管其標記,您可以這樣做:
var x = $("[name='" + q + "']").val();
考慮這種方法$("[name='" + q + "']")
可以返回多個元素,但.val()
只返回第一個元素的值。
如果我正確理解您的問題,您希望按名稱獲取元素,並且您選擇的元素的名稱將由某個下拉列表或文本區域指定。
這是我的看法:
HTML
<input type="text" id="enteredName">
<button id="doTheStuff">Do the work</button>
<input name="one" value="One">
<input name="two" value="Two">
jQuery的
$('#doTheStuff').click(function(){
var objectOfInterest = $('[name=\'' + $('#enteredName').val() + '\']');
alert(objectOfInterest.val());
});
$('#form-id input[name="name-input"]').val('your value');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.