从html输入id =“attribute”传递给javascript变量属性

时间:2013-05-31 10:00:11

标签: javascript jquery

输入

<input type="text" value="" id="row1">
<input type="text" value="" id="row2">

需要从行中获取最后一个字符并将其传递给javascript变量。这里是row1和row2,需要获取变量1和2

我尝试使用它,但不起作用

$('[id^="row"]').each(function (index, row) {
var row = row.id.substring(3);
alert (row);//this is only to check if value exists (alert or not)
});

根本没有警报。但需要:在第一次迭代(.each)时var行为1,在第二次, - 2等等。

以此为例。该示例有效,但我的代码不是

$.each([52, 97], function(index, value) {
alert(index + ': ' + value);
});

1 个答案:

答案 0 :(得分:1)

您的代码正常,提供

  1. 你实际上是在某些时候包含jQuery(你在问题中没有提到它,但你似乎正在使用它)

  2. 您在元素存在后运行代码

  3. 这是包含jQuery的代码,我们确保代码在元素存在之后才会运行:Live Copy | Live Source

    <!DOCTYPE html>
    <html>
    <head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    </head>
    <body>
      <input type="text" value="" id="row1">
      <input type="text" value="" id="row2">
      <script>
        (function($) {
            $('[id^="row"]').each(function (index, row) {
            var row = row.id.substring(3);
            alert (row);//this is only to check if value exists (alert or not)
            });
        })(jQuery);
      </script>
    </body>
    </html>
    

    请注意{/ 1}}标记在操作的元素之后是的标记,因此当该脚本运行时它们就存在。

    这将工作:

    script

    ...因为当脚本运行时,元素还不存在。

    如果由于某种原因您无法控制 <script> (function($) { $('[id^="row"]').each(function (index, row) { var row = row.id.substring(3); alert (row);//this is only to check if value exists (alert or not) }); })(jQuery); </script> <input type="text" value="" id="row1"> <input type="text" value="" id="row2"> 元素的位置,您可以使用jQuery的script函数等待运行代码,直到加载DOM为止。但如果您控制ready标记的位置,只需将它们放在文档的末尾,就在结束script标记之前,就没有必要这样做。

    更多: