2014-07-03 64 views
-1

请查看此fiddle关于值属性中的单词之间的空格问题

我无法将输入框附加到div元素。

有没有办法让整个短语(例如“选项1”)进入值属性的双引号?

萤火虫表明,空间(本例中为 “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(); 
     } 
    } 
}); 
+1

使用引号,就像其他属性一样。 'value =“'+ ui.text +'”'这与您编写'id'属性的方式相同 –

回答

6

你错过了周围的属性报价:

var span = '<input type="radio" value="'+ ui.text +'"> ... 
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,valhtml函数)都可以为你做所有事情。