我希望使用Jquery将输入转换为选择,同时从输入值中获取值并将其用作选定选项。但到目前为止,我在下面的代码中只有一半。任何人都可以看到它出错的地方?或者也许建议一种替代方法。
HTML
<div class="inputDiv"><input type="text" id="input01" value="1" name="input01"/></div>
<div class="inputDiv"><input type="text" id="input02" value="4" name="input02"/></div>
<div class="inputDiv"><input type="text" id="input03" value="2" name="input03"/></div>
<div class="inputDiv"><input type="text" id="input04" value="1" name="input04"/></div>
<div class="inputDiv"><input type="text" id="input05" value="4" name="input05"/></div>
JS
$(".inputDiv input[type=text]").each(function() {
var qty = $(this).val();
var currentId = $(this).attr('id');
alert(qty + " is a Number");
alert(currentId + " is a ID");
$(this).replaceWith('<select id="' + currentId + '" name="" class="NewSelect">' +
'<option value="1">1</option>' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'<option value="4">4</option>' +
'<option value="5">5</option>' +
'</select>');
$("option[value=" +this.qty+ "]").attr('selected', 'selected');
});
答案 0 :(得分:1)
$(".inputDiv input[type=text]").each(function() {
var qty = this.value;
var currentId = this.id;
var selectbox = $('<select id="'+currentId+'><option value="-1"></select>');
$(this).replaceWith(selectbox);
for(var i = 1; i < 6; i++) {
var option = document.createElement('option');
option.value = i;
$(option).text(i);
if(i==qty) option.setAttribute('selected','selected');
selectbox.append($(option));
}
});
答案 1 :(得分:1)
试试这个:
$("input[type=text]").each(function() {
$(this).parent().replaceWith('<option id=' + this.id + ' value='+ this.value + ' name=' + this.name + ">" + this.value +"</option>")
})
$('option').wrapAll('</select>')
答案 2 :(得分:0)
这样做:http://jsfiddle.net/albertjan/heVc6/3/
在DOM中:使id唯一
<div class="inputDiv"><input type="text" id="input01" value="1" name="input01"/></div>
<div class="inputDiv"><input type="text" id="input02" value="4" name="input01"/></div>
<div class="inputDiv"><input type="text" id="input03" value="2" name="input01"/></div>
<div class="inputDiv"><input type="text" id="input04" value="1" name="input01"/></div>
<div class="inputDiv"><input type="text" id="input05" value="4" name="input01"/></div>
在javascript中:
$(".inputDiv input[type=text]").each(function() {
var qty = $(this).val();
var currentId = $(this).attr('id');
alert(qty + " is a Number");
alert(currentId + " is a ID");
$(this).replaceWith('<select id="' + currentId + '" name="" class="NewSelect">' +
'<option value="1">1</option>' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'<option value="4">4</option>' +
'<option value="5">5</option>' +
'</select>');
//this qty instead of this.qty
//search for an option within the current div.
$("#" + currentId + " option[value=" + qty + "]").attr('selected', 'selected');
});