2 u011371270 u011371270 于 2016.03.09 16:50 提问

js this.value传递不过去

我的想实现的功能是这样的,是一个两级查询,第一级查询查询出一批商品,然后点击每一个商品序列号之后再显示明细信息。
思路是第一级查询的结果在php中while函数,在点击部分使用<a value="值"onclike="函数(this.value)">"</a>"是查出来的每一个配件都有一个函数可以用,然后返回给前台浏览器
PHP实际代码如下(部分):

 while($row=mysqli_fetch_array($result)){\
  <td>\<a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.value)\">".$row[0]."\<\a>\</td>}
,我用浏览器调试工具可以看到实际生成的条款如下:
\<a href="#" value="leads-201602001" id="leads-201602001" onclick="showleadsdetails(this.value)">leads-201602001\</a>
即,我的js动作已经绑定了,元素的value也是对的,然后就是点击,调用showleadsdetails函数
function showleadsdetails(leadcodes){
    var url="getleaddetails.php";
    var leads="lead="+leadcodes;}
但是使用调试工具看的时候,一直没有参数传过来,只有leadcodes=undefined。

这是怎么回事?比较复杂的,绕了我好久,请大神麻烦解决,非常感谢,我把我所有的分数都送上了

4个回答

showbo
showbo   Ds   Rxr 2016.03.09 19:40
已采纳

value不属于a的特有属性,是自定义输入,需要用getAttribute获取,不能this.value,不好转义的话可以传递this,在函数中调用getAttribute

 "<td><a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.getAttribute('value'))\">"
  onclick=\"showleadsdetails(this)\"
function showleadsdetails(a){
var leadcodes=a.getAttribute('value');/////////
    var url="getleaddetails.php";
    var leads="lead="+leadcodes;}

Royal_lr
Royal_lr   Ds   Rxr 2016.03.09 16:56

看下你是怎么绑定的,,,,

u011371270
u011371270   2016.03.09 17:09

echo<a href=\"#\" value=\"".$row[0]."\" id=\"".$row[0]."\" onclick=\"showleadsdetails(this.value)\">".$row[0]."<\a></td> 用于绑定的PHP参数
实际页面显示<a href="#" value="leads-201602001" id="leads-201602001" onclick="showleadsdetails(this.value)">leads-201602001</a>
调用的函数是showleadsdetails(this.value),传递的参数是value="leads-201602001"
但我点击那个超链接,可以调用函数showleadsdetails(leadcodes)但无法把value传递过去,显示的结果就是leadcodes=undefined.

xcdnh001
xcdnh001   2016.03.09 17:45

onclick="showleadsdetails(document.getElementById('leads-201602001').value)"
你的function 写成这样 showleadsdetails(value) 然后在函数体中直接调用value就行,value就是 实参的一个引用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!