小编Léo*_*éon的帖子

JavaScript:在新的Option()之后添加额外的属性

我有一段代码,根据一些其他标准动态地向选择字段添加选项.看起来有点像这样:

if (chosen == "a_value") {
  selbox.options[selbox.options.length] = new Option('text_1','value_1');
  selbox.options[selbox.options.length] = new Option('text_2','value_2');
  selbox.options[selbox.options.length] = new Option('text_3','value_3');
}
Run Code Online (Sandbox Code Playgroud)

我需要的是为包含特定值的新选项添加​​额外的属性.在这种情况下,该属性将被称为"折扣",该值将是一个整数.稍后我将读取属性值并根据Option字段中的值处理它们.

因此,一旦脚本准备就绪,选项将如下所示;

<option value="value_1" discount="integer">text_1</option>
Run Code Online (Sandbox Code Playgroud)

说得通?

现在我怎么能在不使用JS框架的情况下做到这一点.它只是我需要的这一小部分代码,因此框架对于这个项目来说是过度的.

干杯! :-)

javascript attributes option

20
推荐指数
3
解决办法
8万
查看次数

attachEvent与addEventListener

我有麻烦让attachEvent工作.在所有支持addEventListener处理程序的浏览器中,下面的代码就像魅力一样,但在IE中是完全的灾难.它们有自己的(不完整的)变体,称为attachEvent.

现在这是交易.如何以与addEventListener相同的方式使attachEvent工作?

这是代码:

function aFunction(idname)
{
    document.writeln('<iframe id="'+idname+'"></iframe>');
    var Editor = document.getElementById(idname).contentWindow.document;

    /* Some other code */

    if (Editor.attachEvent)
    {
        document.writeln('<textarea id="'+this.idname+'" name="' + this.idname + '" style="display:none">'+this.html+'</textarea>');
        Editor.attachEvent("onkeyup", KeyBoardHandler);
    }
    else
    {
        document.writeln('<textarea id="hdn'+this.idname+'" name="' + this.idname + '" style="display:block">'+this.html+'</textarea>');
        Editor.addEventListener("keyup", KeyBoardHandler, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

这会调用KeyBoardHandler函数,如下所示:

function KeyBoardHandler(Event, keyEventArgs) {
    if (Event.keyCode == 13) {
        Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
        Event.returnValue = false;
    }

    /* more code */
}
Run Code Online (Sandbox Code Playgroud)

我不想使用任何框架,因为A)我正在尝试学习和理解某些东西,并且B)任何框架只是我将要使用的代码的重载.

任何帮助都非常感谢!

javascript cross-browser

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

javascript ×2

attributes ×1

cross-browser ×1

option ×1