通过javascript单击时获取列表项的内部值
我有一个用户列表,我正在从数据库中检索所有用户,并将其列在下面通过javascript单击时获取列表项的内部值,javascript,list,innerhtml,Javascript,List,Innerhtml,我有一个用户列表,我正在从数据库中检索所有用户,并将其列在下面 <div class="online-users"> <ul id="outer-list"> @foreach($users->getUsers() as $user) {{--remove white spaces from name--}} <?php $name = str_replace(' ','-',$user-
<div class="online-users">
<ul id="outer-list">
@foreach($users->getUsers() as $user)
{{--remove white spaces from name--}}
<?php $name = str_replace(' ','-',$user->name);?>
<li onclick="openMessageBox()" id="user" class="inner-list-item">{{$user->name}}</li><br>
@endforeach
</ul>
</div>
我不想每次都明确地告诉索引。有什么方法可以实现这一点吗?您需要将当前参考作为参数传递
<input id="theId" value="test" onclick="doSomething(this)" />
// Javascript
function(elem){
var value = elem.value;
var id = elem.id;
...
}
//Javascript
功能(elem){
var值=元素值;
变量id=元素id;
...
}
您可以将元素引用传递给函数:
<li onclick="openMessageBox(this)" id="user" class="inner-list-item">{{$user->name}}</li><br>
简单的实例:
函数openMessageBox(el){
var name=el.textContent;
警报(名称);
}
Alice
- Bob
您是否考虑过为此使用数据属性?例如,不要在JavaScript问题中引用PHP代码。引用它生成的HTML。@rybo111谢谢你,这是我可能很快就会需要的。你从哪里得到输入元素的?你在回答什么问题?参考上面的例子,不难找到问题的解决方案。你只需要使用逻辑。我解决这个问题没有问题,但是从某处粘贴一个随机代码片段(甚至故意编写一个错误的示例)并不会增加太多价值。复制user
IDs如何?在你的foreach中,你渲染li元素,每个元素都有id=“user”
部分。id应该是唯一的,使用class
,或者将实际用户id附加到id字符串中。如何将实际用户id附加到字符串中?这就是我如何获取用户id的方法,我仍然会选择class=“user”
,但是如果你想附加,你可以在那里插入PHP:id=“user”
或者只插入id=“user”
<input id="theId" value="test" onclick="doSomething(this)" />
// Javascript
function(elem){
var value = elem.value;
var id = elem.id;
...
}
<li onclick="openMessageBox(this)" id="user" class="inner-list-item">{{$user->name}}</li><br>
function openMessageBox(el){
var name = el.textContent;
}