分割竖线分隔文本并传入JavaScript方法的实现问题求助
正确获取div属性值并传入JavaScript方法的实现
你的代码存在几个关键问题,导致无法正常运行,以下是修正方案:
问题分析
- 错误获取目标内容:你用
.text()获取的是div内部的文本(即"Edit"),而不是div的value属性值,应该用.attr('value')来读取属性。 - 数组取值语法错误:JavaScript中访问数组元素必须用方括号
[],而非圆括号(),比如data[0]才是正确的写法。 - 未阻止默认跳转:点击a标签会触发页面跳转,导致你的方法可能来不及执行,需要用
event.preventDefault()拦截默认行为。 - 冗余元素选择:事件处理函数内可以用
$(this)指代当前点击的元素,无需重复全局选择,提升效率。
修正后的代码(基于原HTML)
$(".pageEdit").on('click', function(event) { // 阻止a标签的默认跳转动作 event.preventDefault(); // 获取当前div的value属性值并按竖线分割 var data = $(this).attr('value').split("|"); // 正确传递数组元素到方法 functionPageCreate(data[0], data[1], data[2], data[3]); });
更规范的写法(推荐)
HTML规范里value属性不属于div标签,建议使用data-*自定义属性来存储这类数据,代码更符合标准:
修改后的HTML
<div class="pageEdit" data-value="Create|8765678|FOOD=6578~-8765678?|9381"> <a href="https://host:controller">Edit</a> </div>
对应的JavaScript代码
$(".pageEdit").on('click', function(event) { event.preventDefault(); // 使用jQuery的data()方法读取自定义属性 var data = $(this).data('value').split("|"); functionPageCreate(data[0], data[1], data[2], data[3]); });
内容的提问来源于stack exchange,提问作者Sajal Saxena
相关产品推荐
相关产品推荐

