2

我可以做这样的事情吗?

var counter = SomeJSFunctionThatReturnsAvalue();

<tr><td> <input type="file" name="file-upload"+"_counter" id="file-upload" /></tr></td>

我可以这样做吗?我需要在名称后面附加一个下划线和一个递增的数字。

另外,一个题外话的问题 - 上面的函数返回输入类型的值,例如:

<input type="hidden" name="hidden-input-type" value="2" />

值“2”是我可以用于数学运算的数字吗?如果没有,我怎样才能使它成为一个?

4

4 回答 4

2

给你,伙计。

<head>
<script>
function test($count) {
document.getElementById("test1").setAttribute("name","file-upload_" + $count);
}
</script>
</head>
<body>

<p>some content</p>
<input id="test1" type="file" name="file-upload" id="file-upload" value="2"/>
<p>some other content</p>
<script>test(1);</script>
</body>

SomeJSFunctionThatReturnsAvalue();会把它传递给test()函数。

要从第二个问题中获取“2”的值以用于数学函数,只需执行以下操作:

var value = document.getElementById("test1").getAttribute("value");
document.write(parseInt(value, 10) + 3);

返回 5。

于 2013-09-30T01:55:10.373 回答
1

您可以使用以下方法更改名称.setAttribute("name", theNameUwantToChangeTo);

function changeName(number){

    var ele =  document.getElementById("file-upload");
    ele.setAttribute("name",  b.getAttribute("name")+ "_" + number);
}
changeName(number);

要获得价值,只需.value

function getV(){

    return document.getElementById("file-upload").value;
}
var number = getV();

如果它不返回 int,请使用parseInt()

function getV(){

    return parseInt(document.getElementById("file-upload").value);
}
var number = getV();
于 2013-09-30T01:41:02.670 回答
1

要将函数的返回值附加到输入标记的名称,您可以将其分配给输入的名称属性。

var counter = SomeJSFunctionThatReturnsAvalue();
var fileUpload = document.getElementById('file-upload');

fileUpload.name = fileUpload.name + "_" + counter;

您可以使用“typeof”获取变量的类型

typeof myValue; // "string"

您可以使用 parseInt() 函数将其更改为整数。

var intValue = parseInt(myValue, 10);
于 2013-09-30T01:46:29.233 回答
0

如果您尝试做这样的事情,也许您会从Angular.jsEmber.js中受益。他们可以进行数据绑定,以便您可以制作可读和动态的代码,就像您在问题中尝试创建的代码一样。

如果不是那个^那么这个:

我看到您在评论中提到您正在动态创建列表。那就是您应该为计数器分配正确名称的地方(假设不希望计数器动态更改。如果有动态更改,请告诉我们哪些事件正在执行更改)您能否向我们展示正在执行此操作的代码请?

于 2013-09-30T07:59:58.277 回答