如何通过简单的javascript点击li时从嵌套span获取文本

我还没有得到jQuery,所以javascript请.我需要帮助调整我的JS,以便在单击时从li中的嵌套span获取文本.如果你单击文本,我现在有它工作,但如果你单击整个li而没有获得其他嵌套元素(图像),id就像它一样工作.

现在我正在使用以下html和js:

HTML:

<ul><li><img><span onclick="myfunction(this)">TEXT</span></li></ul> 

<input id="iSupervisorUserName" name="OBKey_WF_Manger_Supervisor_1" type="text" />

JS:

function myfunction(span) {
    var textInsideLi = span.innerHTML;
    var field = document.getElementById("iSupervisorUserName");
    field.value = textInsideLi;

我希望在单击li时将SPAN中的文本写入输入,而不仅仅是跨度.我知道我应该将onClick调用从span移动到li,但是如何调整JS以便它只获得跨度内的文本而不是IMG?

最佳答案
干得好

HTML

<ul><li onclick="myfunction(this)"><img><span>TEXT</span></li></ul>

JS

function myfunction(li){
 document.getElementById("iSupervisorUserName").value=
 li.getElementsByTagName('span')[0].textContent;
}

要么

function myfunction(li){
 document.getElementById("iSupervisorUserName").value=
 li.childNodes[1].textContent;
}

无论如何,我会将一个eventlistener添加到ul或者li ..如果你想稍后更新代码,内联js是一个混乱.如果你在每个li上添加onclick =“myfunction(this)”,还会产生更多的代码.

转载注明原文:如何通过简单的javascript点击li时从嵌套span获取文本 - 代码日志