请查看此fiddle。
我无法将输入框附加到div元素。
有没有办法让整个短语(例如"选项1和#34;)进入值属性的双引号?
Firebug显示空格后面的单词(" 1"在本例中)超出了这样的引号:
<input type="radio" value="Option" 3>
但我希望它是:
<input type="radio" value="Option 3">
HTML:
<div id="post_text"></div>
<select multiple>
<option value="A">Option 1</option>
<option value="B">Option 2</option>
<option value="C">Option 3</option>
<option value="D">Option 4</option>
<option value="E">Option 5</option>
<option value="F">Option 6</option>
</select>
使用Javascript:
var post_text = $('#post_text');
$("select").multiselect({
selectedText: "# of # selected",
click: function (event, ui) {
if (ui.checked) {
var span = '<input type="radio" value='+ ui.text +'><div id="' + ui.value + '">'+ ui.text +'</div>'
post_text.append(span);
} else {
post_text.find('#'+ui.value).remove();
}
}
});
答案 0 :(得分:6)
您在属性周围缺少引号:
var span = '<input type="radio" value="'+ ui.text +'"> ...
答案 1 :(得分:3)
詹姆斯有正确的答案,但这里有另一种选择。我总是尝试直接使用javascript来处理值和属性,而不是构建一个大字符串,正是出于这个原因:
所以而不是:
var span = '<input type="radio" value='+ ui.text +'><div id="' + ui.value + '">'+ ui.text +'</div>'
post_text.append(span);
也许可以考虑:
var $input = jQuery("<input>").attr("type", "radio").val(ui.text);
var $div = jQuery("<div></div>").attr("id", ui.value).html(ui.text);
post_text.append($input).append($div);
这样您就不必考虑混合单引号和双引号,或者在内容中删除引号,或者其中任何一个 - javascript函数(jQuery的attr
,val
和html
函数)为你做所有这些。