Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery根据标记名设置值 原始问题_Jquery - Fatal编程技术网

jQuery根据标记名设置值 原始问题

jQuery根据标记名设置值 原始问题,jquery,Jquery,是否有jQuery方法可以检查选择类型并适当设置值?例如,使用.html或.val 我已经制定了自己的方法来完成这项工作,但是我不确定这是否是完成这项任务的最佳方式 $.fn.data = function(value) { if(this.is("input")){ this.val(value); }else if(... other type ...){ this.val(value); }else{ this.htm

是否有jQuery方法可以检查选择类型并适当设置值?例如,使用.html或.val

我已经制定了自己的方法来完成这项工作,但是我不确定这是否是完成这项任务的最佳方式

$.fn.data = function(value) {
    if(this.is("input")){
        this.val(value);
    }else if(... other type ...){
        this.val(value);
    }else{
        this.html(value);
    }
};
我还研究了标记名属性的使用。 变量类型=this.proptagName.toLowerCase

编辑:

标杆管理 对于感兴趣的人,我在这个.tagName之间做了一些基准测试;和$this.isinput;有一万张唱片

this.tagName.toLowerCase;x 10000条记录=185毫秒

$this.isinput;x 10000记录=1676毫秒

由于.val主要用于输入元素,因此可以使用以下命令编写内容:

或者,如果您想更具体一些,您可以使用:

由于.val主要用于输入元素,因此可以使用以下命令编写内容:

或者,如果您想更具体一些,您可以使用:


以下是插件格式:

$.fn.setVal = function(value) {

    return this.each(function() {

        if ($.inArray( this.tagName.toLowerCase(), ['input', 'textarea', 'select'] ) != -1) {
            $(this).val( value );
        } else {
            $(this).text( value );
        }       
    });
};
按如下方式使用:

$('input, span').setVal('Some Value');

在这里查看它的操作:

这里是插件格式:

$.fn.setVal = function(value) {

    return this.each(function() {

        if ($.inArray( this.tagName.toLowerCase(), ['input', 'textarea', 'select'] ) != -1) {
            $(this).val( value );
        } else {
            $(this).text( value );
        }       
    });
};
按如下方式使用:

$('input, span').setVal('Some Value');

请参见此处的操作:

我个人建议使用[0]。标记名,而不是下面的任何一种jQuery方法。对于小用途来说,这不会有什么不同,但是如果你做了数千次这样的事情,这会快得多。jsperf:我个人建议使用[0]。标记名,而不是下面的任何一种jQuery方法。对于小用途来说,这不会有什么不同,但是如果你做了数千次这样的事情,这会快得多。谢谢,这是最简单的选择。我计划在现有插件上使用添加这个方法,但是我可以看到它作为jQuery名称空间的一部分很有用。谢谢,这是最简单的选择。我曾计划在现有插件上使用添加此作为方法,但是我可以看到它作为jQuery命名空间的一部分很有用。+1感谢此选项,但是在使用jQuert.is插入的标记名进行少量基准测试后,在大型页面上似乎会产生更好的性能。如果您感兴趣,我将基准测试结果添加到原始问题。+1感谢此选项运行良好,但是在使用jQuert.is插入的标记名进行少量基准测试后,似乎可以在大型页面上获得更好的性能。如果您感兴趣,我将基准测试结果添加到原始问题中。