Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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
Javascript 获取动态创建的元素jquery的id和值_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 获取动态创建的元素jquery的id和值

Javascript 获取动态创建的元素jquery的id和值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我需要IDA和其他属性,比如我以前在ajax事件中创建的跨度的值。 有办法做到这一点吗 以下是如何在php post上创建跨度: echo "<span class='non-skin-symptom-choice disease_option' ". "onclick='showinfo(".$var[0].");' id=".$var[0].">" .$var[1]." -- ".number_format($var[3]*100, 2,

我需要IDA和其他属性,比如我以前在ajax事件中创建的跨度的值。 有办法做到这一点吗

以下是如何在php post上创建跨度:

    echo "<span class='non-skin-symptom-choice disease_option' ".
        "onclick='showinfo(".$var[0].");' id=".$var[0].">"
        .$var[1]." -- ".number_format($var[3]*100, 2, '.', '')."%</span>";
复选框不是动态创建的,因此$.chb.clickfunction{}可以工作

不知何故,$this.attrid可以工作,但$this.attrval返回未定义的。。。我还尝试了$this.attrvalue,但结果相同$this.val返回空。

使用

$(document).on('click','.chb',function(){
  var id = $(".non-skin-symptom-choice").attr("id"); 
})

由于它有一个高级事件附件,并且可以获取在运行时创建的元素,因此您正在使用的单击绑定称为直接绑定,它将仅将处理程序附加到已经存在的元素。它不会绑定到将来创建的元素。要做到这一点,您必须使用

$(document).on('click','.chb',function(){
  var id = $(".non-skin-symptom-choice").attr("id"); 
})
可能重复:

试试这个

alert($(".non-skin-symptom-choice").attr("id"));

如果加载页面时您的DOM节点不存在,即加载页面后通过AJAX将其添加到页面中,那么如果您尝试更新它或使用jQuery方法读取它,jQuery将无法看到它。克服此问题的一种方法是设置jQuery函数,以引用要定位的节点的父类的类或ID(假设父类在页面加载时加载到页面中),以及要定位的节点的类。例如:

$(".chb").click(function(){
    var id = $(".your-parent-class .non-skin-symptom-choice").attr("id");
    }
}

$.non-skin-symptom-choice.attrid@Tauri28-假设只有一个。非皮肤症状选择,可能不是这样,或者他们不需要特定的id。你的.chb类在哪里?@Kartikeya这里需要什么事件授权??你们读到问题了吗?第一:永远不要使用$this.attrid,只使用this.id你们不必对所有的事情都使用jQuery…,第二:你们需要从哪里获得id?在用onclick调用的函数中,还是在其他地方?第三:显示html,而不是与JavaScript无关的php,后者在浏览器中运行**我知道服务器端JavaScript,但您没有使用它。复选框不是动态创建的。不知何故,$this.attrid可以工作,但$this.attrval返回未定义的。。。我还尝试了$this.attrvalue,但结果相同$this.val返回空。由于span没有value属性,请使用此var值=$。non-skin-symptom-choice.html;啊。。。这就是为什么。谢谢html;应该有用。0:
$(".chb").click(function(){
    var id = $(".your-parent-class .non-skin-symptom-choice").attr("id");
    }
}