0

输入

<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);
});
4

1 回答 1

1

您的代码可以正常工作,前提是:

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

  2. 在元素存在运行代码。

这是包含 jQuery 的代码,我们确保在元素存在之前代码不会运行:Live Copy | 直播源

<!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>

注意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">

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

如果由于某种原因你无法控制script元素的去向,你可以使用 jQuery 的ready函数来等待运行你的代码,直到 DOM 被加载。但是,如果您控制标签的位置,则无需这样做script,只需将它们放在文档的末尾,就在结束</body>标签之前。

更多的:

于 2013-05-31T10:03:59.990 回答