Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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中创建一个表单。当页面加载时,我会隐藏所有文本框,并尝试用span替换它们 $("form input:text").each(function(index) { $(this).after("<span id='Span_" + $(this).attr("id") + "'>" + $(this).val() + "</span").hide(); }); $(“表单输入:文本”)。每个(函数(索引){ $(this).after(“+$(thi

我正在jQuery中创建一个表单。当页面加载时,我会隐藏所有文本框,并尝试用span替换它们

$("form input:text").each(function(index) {
    $(this).after("<span id='Span_" + $(this).attr("id") + "'>" + $(this).val() + "</span").hide();
});
$(“表单输入:文本”)。每个(函数(索引){

$(this).after(“+$(this).val()+”因为您只是隐藏它们,而不是分离它们,所以应该这样做:

$("form input:text").each(function(index) {
    $(this).after("<span id='Span_" + $(this).attr("id") + "'>" + $(this).val() + "</span>").hide();
});
$("form input:text+span").hover(...);

这可能是一个更好的解决方案,因为您可以单独绑定事件。但是,如果您不需要单独绑定,则会添加不必要的计算。

您可以对其进行如下更改:

$("form input:text").each(function(index) {
    $(this).after("<span id='Span_" + $(this).attr("id") + "'>" + $(this).val() + "</span>").hide().next().hover(...);
});
$("form input:text").each(function(index) {
  $("<span />", { "id": 'Span_' + this.id, text: $(this).val() })
    .insertAfter(this)
    .hover(function() {
      //do something
    });
  $(this).hide();
});
$(“表单输入:文本”)。每个(函数(索引){
$(“”,{“id”:“Span_933;”+this.id,文本:$(this.val()})
.insertAfter(本)
.hover(函数(){
//做点什么
});
$(this.hide();
});
这用于创建对象,而不是使用链引用已创建元素的方式,因此您可以直接对其执行任何操作