将 img 直接路径 src 传递给输入 onClick
pass img direct path src to input onClick
我有这个片段:
<script>
function changeValue(o){
document.getElementsByName('NAME')[0].value=o;
}
</script>
<span onclick="changeValue(this.innerHTML)" style="cursor: pointer;">One</span>
<span onclick="changeValue(this.innerHTML)" style="cursor: pointer;">Two</span>
<img src='image.gif' onclick="changeValue(this.src)" />
<input type="text" name="NAME" value="SOMETHING">
IM 试图让它在单击 img 时传递介于"之间的 src,而不是实际的 url
现在单击图像会导致
http:/site.com/image.gif
被放置在输入中
但我需要它只是
image.gif
在输入中
我怎样才能做到这一点?
HTMLImageElement 对象的src
属性返回图像的完整/计算源。为了获得所需的结果,您可以使用返回属性指定值的 getAttribute
方法。
this.getAttribute('src')
您可以使用 javascript 的 split 函数进行拆分; site.com/image.gif
"site.com/image.gif".split(".com/")[1];
为了避免额外的JS和拆分字符串/等,您可以为图像定义另一个属性并调用该属性。我会避免使用"alt",以便它可以在图像未加载时显示某些内容。
例如:
如果 this.data-path 不起作用,你可以使用 getAttribute('data-path')。
您可以获取子字符串,然后更新值。
function changeValue(o) {
// its a url, extract it
if(o.indexOf('http') > -1) {
o = o.substr(o.lastIndexOf('/') + 1);
}
document.getElementsByName('NAME')[0].value = o;
}
我已经通过使用alt标签解决了这个问题
<script>
function changeValue(o){
document.getElementsByName('NAME')[0].value=o;
}
</script>
<span onclick="changeValue(this.innerHTML)" style="cursor: pointer;">One</span>
<span onclick="changeValue(this.innerHTML)" style="cursor: pointer;">Two</span>
<img src='image.gif' alt='image.gif' onclick="changeValue(this.alt)" />
<input type="text" name="NAME" value="SOMETHING">
方法 1: str.split()
执行此操作的一种方法是使用 /
作为分隔符将字符串拆分为数组。这会将字符串拆分为一个数组,其中/
是数组中逗号的功能等效项。下面是一个示例。
var imagePath = 'http:/site.com/image.gif'
var splitted = imagePath.split('/');
// returns ["http:", "site.com", "image.gif"]
// get last str in splitted
var imageFile = splitted[splitted.length - 1];
// returns "image.gif"
方法2:正则表达式
您可以使用正则表达式获取最终'
后面的所有字符。表达式如下所示:
var regex = /([a-z'.'-'_]+'.[a-z]{2,4})/gi;
这个正则表达式匹配任何字符(a-z
、.
、-
、_
),后跟一个.
,然后是2-4个字符(a-z
)。
要将其与您的路径匹配,您可以使用 String.prototype.match()
var imagePath = 'http:/site.com/image.gif'
var matches = imagePath.match(regex);
// returns ["site.com", "image.gif"]
var imageFile = matches[matches.length - 1]; // "image.gif"
这比前一种解决方案更详细,但提供了定制图像路径以满足您的需求的选项。
分别获取文件名和扩展名
var regex = /([a-z'-'_]+)/gi;
var matches = imagePath.match(regex);
// returns ["http", "site", "com", "image", "gif"]
var fileName = matches[matches.length - 2]; // "image"
var extension = matches[matches.length - 1]; // "gif"
获取带有前面/
的文件名
var regex = /('/[a-z'.'-'_]+'.[a-z]{2,4})/gi;
var matches = imagePath.match(regex);
var lastMatch = matches[matches.length - 1]; // "/image.gif"
获取以下.com
的完整路径
var imagePath = http:/site.com/some-folder/image.gif;
var regex = /com('/[a-z'.'-'_'/]+)/i;
var matches = imagePath.match(regex);
var lastMatch = matches[matches.length - 1]; // "/some-folder/image.gif"
相关文章:
- 更改输入按钮's onClick参数
- onclick在使用jquery附加时不触发提交输入
- 输入类型=“;文件“;onclick有效,但文件选择不显示
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 如何从该文本的 onclick 方法中更改 d3.js 文本输入
- 在 OnClick 事件上输入键的原因
- 提交按钮上的Javascript onclick将输入值存储在php数组中
- 通过参数将传递的函数分配给动态创建的输入类型的onclick事件
- 使用onclick()时,在输入中保留必需的标记
- 如何在类型为“”的输入上调用onclick函数;图像”;
- Spring MVC获取onclick输入星级的值
- 将列表元素 onclick 事件绑定到单选输入
- 如何创建表单元素输入框,标签使用javascript onclick
- 将 img 直接路径 src 传递给输入 onClick
- jquery onclick 从只有一个输入的 PHP 文件中获取数据
- 将 OnClick 事件添加到大型 HTML 表中的输入元素会导致页面呈现缓慢.如何提高性能
- Javascript onclick 将第二个输入框的值更改为与第一个输入框的值相同
- JavaScript:如果用户取消confirm(),文件输入onclick将阻止更改
- Javascript到Jquery,在输入onclick中添加文本
- 错误"函数预期"输入onclick="start();".. & # 39;