Javascript 如何创建返回jQuery方法attr值的函数
我有html结构:Javascript 如何创建返回jQuery方法attr值的函数,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有html结构: <div> <ul> <li><img src="img/product1.png" alt="product1"></li> <li><img src="img/product2.png" alt="product2"></li> <li><img src="img/product3.png" alt="p
<div>
<ul>
<li><img src="img/product1.png" alt="product1"></li>
<li><img src="img/product2.png" alt="product2"></li>
<li><img src="img/product3.png" alt="product3"></li>
<li><img src="img/product4.png" alt="product4"></li>
</ul>
</div>
不幸的是,我在控制台中没有定义。您的函数不会返回任何内容。它只是定义了一个onClick处理程序。这就是为什么返回值为“undefined” 如果您打算在单击某个div时记录该div的src,那么您的代码需要更像这样
$('div').on("click", "ul li img", function ()
{
var sr = $(this).attr("src");
console.log(sr);
});
在元素上注册事件侦听器的
但是,如果您希望将侦听器包装在一个函数中,然后调用该函数,正如您所做的那样,这也会起作用-在单击元素时,将触发打开(“单击”)中的函数。将设置sr的值,但外部函数本身不会返回值。您需要找到另一种方法来使用sr值执行某些操作,在函数中的on(“click”)您的函数不返回任何内容。它只是定义了一个onClick处理程序。这就是为什么返回值为“undefined” 如果您打算在单击某个div时记录该div的src,那么您的代码需要更像这样
$('div').on("click", "ul li img", function ()
{
var sr = $(this).attr("src");
console.log(sr);
});
在元素上注册事件侦听器的
但是,如果您希望将侦听器包装在一个函数中,然后调用该函数,正如您所做的那样,这也会起作用-在单击元素时,将触发打开(“单击”)中的函数。将设置sr的值,但外部函数本身不会返回值。您需要找到另一种方法来处理sr的值,在函数的on(“click”)中,您必须在调用函数之前放置事件处理程序
var sr = "";
function imgSrc(obj){
if(obj.tagName == "IMG")
sr = $(obj).attr("src");
else
sr = $(obj).find("img").attr("src");
return sr;
}
$('div').on("click", "li img", function () {
console.log(imgSrc(this));
});
在调用函数之前,必须放置事件处理程序
var sr = "";
function imgSrc(obj){
if(obj.tagName == "IMG")
sr = $(obj).attr("src");
else
sr = $(obj).find("img").attr("src");
return sr;
}
$('div').on("click", "li img", function () {
console.log(imgSrc(this));
});
如果我理解正确,您希望sr具有属性值吗
var sr = "";
$('div').on("click", "ul li img", function () {
sr = $(this).attr("src");
});
console.log(sr);
如果我理解正确,您希望sr具有属性值吗
var sr = "";
$('div').on("click", "ul li img", function () {
sr = $(this).attr("src");
});
console.log(sr);
您需要单击元素以获取其属性。这就是代码的含义。您需要单击元素以获取其属性。这就是你的代码的意思。非常感谢你的帮助!非常感谢你的帮助!非常感谢您的建议,但我确实需要这个解决方案,不仅是用于日志,我还希望使用函数帮助分离代码,因为我认为在这种情况下使用单独的方法会更漂亮。非常感谢您的建议,但我真的需要这个解决方案,不仅是用于日志,我还希望使用函数帮助分离代码,因为我认为在这种情况下,当我有单独的方法时,它会更漂亮。