追加函数撇号

时间:2011-02-13 20:07:03

标签: javascript

我附上以下内容:

$('#field').append("<input type='text' id='searchfield'  placeholder='Search...' autosave='save' results='5' onkeyup='onChange('searchfield','searchfield_right')' />")

它正在附加,但由于撇号,onChange函数无效...

onkeyup="onChange('searchfield','searchfield_right')"

对于"

''searchfield','searhfield_right'应如上所示

追加时,您只能使用' 所以'searchfield','searhfield_right'会被视为"searchfield","searchfield_right" 哪个不正确 -

是否有不同的方法为函数附加右撇号' ????

3 个答案:

答案 0 :(得分:1)

您的属性值以'个字符分隔。因此,如果您尝试在值中使用文字',它将终止值而不是其中的一部分。

onkeyup='onChange('

用实体(&#39;)表示。更好(事实上要好得多),使用unobtrusive JavaScript:使用JavaScript附加事件处理程序,而不是HTML属性。

答案 1 :(得分:0)

逃避他们。

$('#field').append("<input type='text' id='searchfield'  onkeyup='onChange(\"searchfield\",\"searchfield_right\");' />");

但是,我同意大卫你应该使用事件处理程序。

答案 2 :(得分:0)

不是传递字符串变量,而是传递thisevent

onkeyup="onChange(this, event)"

然后在你的onChange函数中,你可以使用:

function onChange(element, event) {
   var id = element.id,

}

但是,如果您确定要传递字符串,请转义引号:

onkeyup="onChange(\"searchfield\",\"searchfield_right\")"

---&GT; Demo&lt; ---