我在函数中传递HTMLDivElement,如下所示
var tableHTML = "...
<li name="Item2" onclick="onCombToPie2D(\'' + id + '\');" >Pie 2D</li>
....";
$('#graphsDiv').append(tableHTML);
我能够在函数中访问此元素,如下所示
function onCombToPie2D(element) {
alert($('#element'));
}
但现在我无法访问此元素的id。到目前为止我已尝试过以下内容
alert($('#element').attr('id')); //undefined
alert($('#element').prop('id')); //undefined
alert(element.id); //undefined
在我的观察源中,div存在(这是一个剑道图表)
<div id="chartmd2467rt6" data-role="chart" class="k-chart" style="position: relative; touch-action: none;"> ... </div>
答案 0 :(得分:4)
试试这个样本:
function onCombToPie2D(idElemento) {
alert($('#'+idElemento).attr('id'));
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li name="Item2" onclick="onCombToPie2D('chartmd2467rt6');" >Pie 2D</li>
</ul>
<div id="chartmd2467rt6" data-role="chart" class="k-chart" style="position: relative; touch-action: none;"> ... </div>
&#13;
答案 1 :(得分:0)
而不是传递HTMLDivElement我将其id传递给函数
<li name="Item2" onclick="onCombToPie2D(\'' + id.id + '\');" >Pie 2D</li>
现在在函数
中function onCombToPie2D(element) {
alert('#' + element);
}
这给了我正确的元素
答案 2 :(得分:0)
我建议您使用data-attribute
而不是将数据作为参数传递。
$(document).on('click', 'li', function(){
console.log($(this).data('id'));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li name="Item2" data-id="chartmd2467rt6" >Pie 2D</li>
<li name="Item2" data-id="chartmd2467ry0" >Line 2D</li>
</ul>
<div id="chartmd2467rt6" data-role="chart" class="k-chart" style="position: relative; touch-action: none;"> ... </div>
&#13;
希望这会对你有所帮助。