javascript - 从li标签获取图像来源

标签 javascript jquery backbone.js

我有这样的代码

<ul class="dd-menu">
                <li>
                    <a href="#"><span><img src="{{STATIC_URL}}img/away.png"></span>1</a>
                </li>
                <li>
                    <a href="#"><span><img src="{{STATIC_URL}}img/inacall.png"></span>2</a>
                </li><ul>

Javascript

menuApp = Backbone.View.extend({
el: $('#header-status'),
events: {
    'click .dd-menu li a': 'optionChange'
},
optionChange: function(e) {
    var selectedItemText = $(e.currentTarget).text();
    var selectedItemSrc = $(e.currentTarget).data("src"); 
    console.log($(e.currentTarget).data("src")); //Undefined
    $("#availability").text(selectedItemText);
    $("#availabilitySRC").attr("src").replace(selectedItemSrc); //Error
}});

我试图显示选定的 li,现在它显示选定的 li 的文本。但是,它不显示所选项目的图像。有没有办法获取img的src?

谢谢

最佳答案

获取src时出现的错误是您引用了一个标签。您必须引用 img 标签。为此:

optionChange: function(e) {
    var $a = $(e.currentTarget); // get a tag
    var $img = $a.find('img'); // find img in a tag
    var selectedItemText = $a.text(); // text from a
    var selectedItemSrc = $img.attr('src'); // src from img
    $("#availability").text(selectedItemText); // set text
    $("#availabilitySRC").attr('src', selectedItemSrc); // set src attr
}});

要从元素获取属性,请使用 attr('attribute-name') 函数。 要更改属性值,请使用 attr('attribute-name', newValue)replace(如果用于替换整个元素)。

关于javascript - 从li标签获取图像来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34464355/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'result' of null

javascript - 使用 jQuery 在 div onClick() 中隐藏 img 标签

javascript - 在带有图像的类别中淡入淡出

javascript - 不确定如何将方法定义转换为 ES6

javascript - 在按钮单击事件上渲染新的 react 组件

javascript - Firefox 上的 jQuery URL 获取错误

mysql - 使用 Node js mysql 在 appfog 中应用程序崩溃

javascript - 主干和原型(prototype)初始化

javascript - 带有 XQIB 的 REST 调用报告功能发送请求不可用

javascript - 将数组传递给 JavaScript 中具有循环的函数