我希望将一个字符串解析为节点对象。以下函数应该实现这样的功能:
我想获取嵌入在li标签中的输入元素,其中输入元素可以是单选按钮或普通按钮。如果类型被指定为单选按钮,则必须添加标签。
不幸的是,以下部分:
亲切的问候,
托比亚斯
我想获取嵌入在li标签中的输入元素,其中输入元素可以是单选按钮或普通按钮。如果类型被指定为单选按钮,则必须添加标签。
不幸的是,以下部分:
inputElement = $.parseHTML(this.getFullHtmlTextOf(inputElement) + labelElement);
失败了。
this.getKeyValAsInputInLiWithType = function (key, val, isArgument, type, isChecked) {
var liElement, inputElement, labelElement;
liElement = document.createElement('li');
liElement.setAttribute('id', 'li_' + key);
inputElement = document.createElement('input');
inputElement.setAttribute('id', key);
inputElement.setAttribute('type', type);
inputElement.setAttribute('value', val);
inputElement.setAttribute('data-dismiss', 'modal');
// additional attributes for a button
if (type === 'button') {
inputElement.setAttribute('class', 'button button-block btn btn-primary btn-default btn-discussion');
}
// additional attributes for a radio button
if (type === 'radio') {
if (isChecked) {
inputElement.setAttribute('checked', '');
}
// adding label for the value
labelElement = '\<label for="' + key + '"\>' + val + '\</label\>';
inputElement = $.parseHTML(this.getFullHtmlTextOf(inputElement) + labelElement);
}
if (key === addStatementButtonId) {
inputElement.setAttribute('onclick', "$('#'+addArgumentContainerId).show();$('#'+addStatementButtonId).disable = true;");
} else if (type === 'button') {
if (isArgument) {
inputElement.setAttribute('onclick', "new InteractionHandler().argumentButtonWasClicked(this.id, this.value);");
} else {
inputElement.setAttribute('onclick', "new InteractionHandler().positionButtonWasClicked(this.id, this.value);");
}
}
alert(this.getFullHtmlTextOf(inputElement));
liElement.appendChild(inputElement);
return liElement;
};
亲切的问候,
托比亚斯
setAttribute('onclick'...
来添加事件处理程序。使用jQuery的on()
方法或DOM的addEventListener
方法。 - Heretic Monkey