我的网站上有一些输入类型文本,当我点击我网站上的某些<span>
时,我想从此输入中获取(读取)一个值。当我点击带有id=1
的范围时,我想从class=1
我写了那个脚本,但这只取得第一次输入的值?为什么不是其他? (对不起我的英文)?
$("span.button-kopia-make").click(function() {
var clickID = $(this).attr("id");
var ileloop = $("input[name=\'ileinputowbudujemy\'][class=+clickID]").val();
for (var i = 1; i < ileloop; i++) {
$(\'<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer\' + i +\'" value="" /></label></p>\');
}
});
答案 0 :(得分:0)
问题是您需要连接clickID
值,而只是将变量名称作为选择器的一部分而不是使用其值。
尝试:
$("span.button-kopia-make").click(function() {
var clickID = this.id;
var ileloop = $("input[name='ileinputowbudujemy']." + clickID).val();
//^__ Class selector
for (var i = 1; i < ileloop; i++) {
$('<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer' + i + '" value="" /></label></p>');
}
});
答案 1 :(得分:0)
Becaue .val()
方法将从提供的选择中返回第一个输入元素的值。
尝试在迭代之前将所有值存储在数组中。
下面的内容会让你朝着正确的方向前进
var values = [];
$("span.button-kopia-make").click(function() {
var clickID = $(this).attr("id");
var $elements = $("input[name=\'ileinputowbudujemy\'][class=+clickID]");
$elements.each(function() {
var elementValue = $(this).value();
values.push(elementValue);
});
for (var i = 1; i < values.length; i++) {
$(\'<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer\' + values[i] +\'" value="" /></label></p>\');
}
});
答案 2 :(得分:0)
我相信您正在寻找循环每个输入并使用每个输入的值做一些事情?这可以通过以下代码实现:
$("span.button-kopia-make").click(function() {
var clickID = this.id;
$("input." + clickID).each( function() {
// This function will be called on every matching input
// Get the value of the input
var i = $(this).val();
// Do something with it.
$('<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer' + i + '" value="" /></label></p>');
});
});