如何预先以特定类前缀开头的所有输入

Ali*_*Zia 1 javascript jquery

我有多个输入:

<input class="pdf-in pdf-bg custom-inbox pdf-bg-3 rate_1 cant_be_empty" type="text" onchange="doMultiplication(1)" onkeyup="doMultiplication(1)">
<input class="pdf-in pdf-bg custom-inbox pdf-bg-3 rate_2 cant_be_empty" type="text" onchange="doMultiplication(2)" onkeyup="doMultiplication(2)">
Run Code Online (Sandbox Code Playgroud)

我想循环遍历它们并获取值.这是我的代码:

$("input[class^='rate_']").each(function() {
    alert('hi');
    totalTime = timeSum(totalTime, $(this).val());
});
Run Code Online (Sandbox Code Playgroud)

它不起作用.有任何想法吗?

请注意,这些字段是由AJAX调用生成的.

Soo*_*lie 6

由于它们是由AJAX调用生成的,因此最好在success回调上发送它们.如果那是不可能的,你可以使用$.ajaxComplete().

$( document ).ajaxComplete(function() {
  $("input[class^='rate_']").each(function() {
    alert('hi');
    totalTime = timeSum(totalTime, $(this).val());
  });
});
Run Code Online (Sandbox Code Playgroud)

此处的问题还在于,类可能并不总是以名称开头.所以你需要使用:

$("input[class^='rate_'], input[class*=' rate_']")
Run Code Online (Sandbox Code Playgroud)

你的最终代码是:

$( document ).ajaxComplete(function() {
  $("input[class^='rate_'], input[class*=' rate_']").each(function() {
    alert('hi');
    totalTime = timeSum(totalTime, $(this).val());
  });
});
Run Code Online (Sandbox Code Playgroud)