Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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_Javascript_Jquery_Html_Html Lists_Mouseevent - Fatal编程技术网

如何通过单击元素将值传递给javascript

如何通过单击元素将值传递给javascript,javascript,jquery,html,html-lists,mouseevent,Javascript,Jquery,Html,Html Lists,Mouseevent,我有以下无序列表,它是通过JQuery.ajax从数据库中动态填充的,其中有一些列表项是产品的名称 <ul id="here"> <li>Product 1</li> <li>Product 1</li> <li>Product 1</li> <li>Product 1</li> <li>Product 1</li> </ul> 用于填充的javasc

我有以下无序列表,它是通过JQuery.ajax从数据库中动态填充的,其中有一些列表项是产品的名称

<ul id="here">
<li>Product 1</li>
<li>Product 1</li>
<li>Product 1</li>
<li>Product 1</li>
<li>Product 1</li>
</ul>
用于填充的javascript代码如下所示:

var pr= [Product1, Product2, Product3, Product4, Product5];
for (var option in pr){
var newLi = document.createElement("li");
newLi.innerHTML=pr[option];
$("#here").append(newLi);}

但我想在单击另一个输入元素时,通过Javascript或JQuery将该元素内部的产品名传递给该元素。我如何才能做到这一点?

因为li是动态创建的,所以在执行代码时,您需要使用事件委派,而不是dom上的委派。这个示例代码应该适合您。试试看:

var clickLiData = "";
$("#here").on("click","li",function()
{
 clickLiData = $(this).html();
})

因为我看到您正在使用jQuery,所以可以像这样绑定ul的click事件:

$("#here").on("click", "li", function(evt) {
   $("#your_Input_Id").val(evt.target.innerHTML);
});

JSFIDLE的示例:

假设目标输入是文本

<ul>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

<input type="text" name="text" id="text">

显示你的js代码?@Fast Snail上面已经分享了js代码。
<ul>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

<input type="text" name="text" id="text">
$("li").click(function() {
    $item = $(this).html();
    $("#text").val($item);
});