jQuery:如何编写"src"属性转换为子元素的Onclick函数参数
jQuery: How to write "src" attribute into Onclick function argument of child element
我使用jQuery重写DOM以将无js的HTML页面转换为js驱动页面。我在转换图像链接时遇到了一个小故障。在原始代码中,我有:
<div class="f">
<a href="images/Fig-03-2.png" target="_blank">
<img src="images/fig-03-2.png" alt="Fig 3.3" />
</a>
</div>
…我想把它转换成:
<div class="f">
<a>
<img src="images/fig-03-2.png" alt="Fig 3.3" onclick="imagepop("fig-03-2.png")/>
</a>
</div>
我不知道如何编写onclick
属性,使其包含img src
值作为imagepop
的参数。我试着:
$(".f a").attr('onclick', 'imagepop(' + $(this).attr('src') + ')' );
…但$(this).attr('src')
返回"undefined"
我应该如何修复我的代码行,还是最好从imagepop
函数内部读取img src
属性?
**注意,我没有开发页面,使每个div都有一个唯一的ID,也不打算这样做。<div>
标签中的所有元素都没有指定的id。
…我想把它变成…
无论如何,我不会的。而不是,我将使用这样的函数:
$("div.f a img").click(function() {
imagepop(this.src);
return false;
});
这行,可能包装在ready
处理程序中,做的是:如果用户单击图像,它做imagepop
的事情并取消事件,这(除其他事项外)防止链接触发。
叫做渐进增强。启用JavaScript的用户代理将使用上述链接,而未启用JavaScript的用户代理仍将看到并遵循该链接。请记住,用户代理不仅仅是浏览器,它们还包括爬虫、蜘蛛等,是的,还包括禁用JavaScript的浏览器。
Update:如果您真的想在链接级别处理它(这可能更适合键盘),而不是图像级别,那么:
$("div.f a").click(function() {
var img = $(this).find("img");
if (img[0]) {
imagepop(img[0].src);
return false;
}
});
…因为它是img
,而不是a
,元素有src
。(这里不需要使用attr
, src
反射属性被所有主要的——也可能是所有次要的——浏览器支持。)
try this:
$('.f a').onclick(function(e){
imagepop($(this).find('img').attr('src'));
e.preventDefault();
});
基本上,它选择.f
类下的所有锚,并对每个锚应用onclick
。在onclick函数中,我们引用this
,这是当前的锚标记,并将其放入一个jQuery对象中。这允许我们在锚标记下找到所有img
元素,拉出它的src
属性,并通过imagepop()
运行它。
- html,js-如何限制元素"范围“-命名空间
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- "隐藏/显示”;元素和更改按钮背景图像
- 将元素添加到javascript中"字典“;大堆
- Javascript.替换元素“<termref/>"用规则的“;文本”;
- 使用javascript"随机引用“;脚本,但跨越两个独立的元素
- “间歇”;jqLite不支持通过选择器查找元素"当使用RequireJS加载AngularJS时
- 如何使用JQuery's”;.on()"方法来处理非本机jquery元素
- 为什么我的动画"重放的“;当通过innerHTML添加元素时
- jQuery:元素静止":隐藏的“;在.slideDown()之后
- 如何访问JSON元素-"JavaScript中名称中的字符
- "text长度"Internet Explorer中svg文本元素悬停时的更改
- ReactJS-将溢出的元素放入一个“"下拉按钮
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- Knockout.js"<!--ko if:-->"导致分离DOM元素的块
- 如何隐藏所有下一个"字段集“;元素使用jQuery
- 如何删除扩展属性“;jquery123456"来自元素
- 带错误的Onsen UI导航:您不能提供no"ons页”;元素到“;ons导航器”;当返回第一页时
- Javascript:如何检查一个元素是否是"显示”;在屏幕上
- 如何使用jquery操作元素,使其与css Selector相匹配"第n种类型”;