将内部div文本传递给函数

时间:2012-03-07 16:25:20

标签: javascript html dom

我的目标是当用户点击具有特定数据条目的行时,他们将获得有关它的更多信息。到目前为止,我的逻辑是让用户单击该行,然后是一个传递innerHTML参数的函数,然后由另一个检索其他信息的函数处理。所以,如果有一个列表,如:

John Doe

Jane Doe

Joe Blow

我认为当用户点击他们的名字时,他们点击的内容(例如“John Doe”)的innerHTML字符串将以某种方式传递给getInformation(fullName),其中fullName将是“John Doe”。

这是我的HTML:

<div class='row' onclick=alert((this).innerHTML)>
    <div class='label'>
         John Doe
     </div>
</div>
<div class='listSeparator'></div>

问题是我不太清楚如何实现这一点。上面的(this).innerHTML 显然不起作用,因为它只会返回"<div id ='labeled' class='label'>John Doe</div>"。有没有办法完成我想要做的事情?或者我甚至以正确的角度接近这个?

感谢您的任何信息!

4 个答案:

答案 0 :(得分:3)

您想从.label DIV中读出全名吗? 这应该是你想要的(普通JS,不需要jQuery ):

<div class='row' onclick="alert((this).children[0].innerHTML)">

http://jsfiddle.net/WuA9R/1/

答案 1 :(得分:1)

不需要获取外部div的innerHTML,而是需要内部div的innerHTML。在DOM中,内部div是外部div的子节点,所以得到外部div的第一个子节点并得到它的innerHTML。

类似的东西:

onclick=alert((this).childNodes[0].innerHTML)

答案 2 :(得分:0)

我不确定你要做什么,但我相信你正在寻找以下(使用jQuery):


<div class="row" onclick="alert( $(this).text() );">test</div>

答案 3 :(得分:0)

<script>
$('.row').Click(function(){
 //var user_name = $(this).find("div.label").text();
 //or even better in case that the username is the only TEXT in the 'row' div:
 var user_name = $(this).text();


 //Do something with the user_name
 //Calling another function for example: getInformation(user_name);
});
</script>

<div class='row'>
    <div class='label'>
         John Doe
     </div>
</div>
<div class='listSeparator'></div>