[英]jquery: convert textarea (separated by new lines) to select option menu
我已經試過了:
$('.generate').click(function () { $('.inthis').text('<select class="select" id="' + $('.select-menu').val() + '"><option>' + $('.text-area').val().split('\\n') + '</option><option>' + $('.text-area').val().split('\\n') + '</option><option>' + $('.text-area').val().split('\\n') + '</option></select>'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="Text1" type="text" value="option_one" class="select-menu"> <br> <textarea class="text-area" name="Text2" cols="40" rows="5" placeholder="enter one wdg in one line">green yellow blue</textarea> <br> <input class="generate" type="button" value="test" /> <br> <br> <div class="inthis"></div>
但它沒有用。
我想像這樣:
<select class="select" id="option_one">
<option>green</option>
<option>yellow</option>
<option>blue</option>
</select>
$('.generate').click(function() { var options = $('.text-area').val().split('\\n') $('.inthis').html('<select class="select" id="' + $('.select-menu').val() + '"><option>' + options[0] + '</option><option>' + options[1] + '</option><option>' + options[2] + '</option></select>'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="Text1" type="text" value="option_one" class="select-menu"> <br> <textarea class="text-area" name="Text2" cols="40" rows="5" placeholder="enter one wdg in one line">green yellow blue</textarea> <br> <input class="generate" type="button" value="test" /> <br> <br> <div class="inthis"></div>
使用.html()
而不是.text()
首先,使用text()
將設置元素的文本值。 如果要在其中創建一個新元素,則可以使用html()
或append()
,或jQuery的任何其他DOM操作方法。 在下面的示例中,我使用了appendTo()
因此我可以維護對添加的select
的引用。
從那里,您可以按每一行split()
textarea
值,然后遍歷該數組以建立每行的值作為自己的option
。 嘗試這個:
$('.generate').click(function() { var $select = $('<select class="select" id="' + $('.select-menu').val() + '" />').appendTo('.inthis'); var options = $('.text-area').val().split('\\n').map(function(value) { return '<option>' + value + '</option>'; }); $select.html(options.join('')); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="Text1" type="text" value="option_one" class="select-menu"> <br> <textarea class="text-area" name="Text2" cols="40" rows="5" placeholder="enter one wdg in one line">green yellow blue</textarea><br> <input class="generate" type="button" value="test" /><br><br> <div class="inthis"></div>
文本是名稱,建議不適用於html或jQuery對象。
我正在使用jQuery語法創建對象並忽略textarea中的空行
$('.generate').on("click", function() { var $sel = $('<select />', { "class": "select", "id": $('.select-menu').val() }), opts = $('.text-area').val().split('\\n').map( function(val) { if (val) return $('<option/>', { "value": val, "text": val }); }); $sel.append(opts); $('.inthis').html($sel); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="Text1" type="text" value="option_one" class="select-menu"> <br> <textarea class="text-area" name="Text2" cols="40" rows="5" placeholder="enter one wdg in one line">green yellow blue</textarea> <br> <input class="generate" type="button" value="test" /> <br> <br> <div class="inthis"></div>
試試這個:
$('.generate').click(function () { var options = $('.text-area').val().split('\\n').map(function(value) { return '<option>' + value + '</option>'; }); $('.inthis').text('<select class="select" id="' + $('.select-menu').val() + '">' + options.join('') + '</select>'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="Text1" type="text" value="option_one" class="select-menu"> <br> <textarea class="text-area" name="Text2" cols="40" rows="5" placeholder="enter one wdg in one line">green yellow blue</textarea> <br> <input class="generate" type="button" value="test" /> <br> <br> <div class="inthis"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.