簡體   English   中英

如何通過名稱獲取元素並設置其值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM