Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';无法在javascript中获取图像的id_Javascript_Html - Fatal编程技术网

我能';无法在javascript中获取图像的id

我能';无法在javascript中获取图像的id,javascript,html,Javascript,Html,我想在鼠标滚轮上获取javascript中img的id,但当我执行getElementById时,它会告诉我长度为null 这是我放置img的函数 function parse_data(data) { var json = data; var obj = JSON.parse(json); var buff = ""; for(var i in obj) { //document.write('<br>' + i + '<br>');

我想在鼠标滚轮上获取javascript中img的id,但当我执行getElementById时,它会告诉我长度为null

这是我放置img的函数

function parse_data(data)
{
 var json = data;
 var obj = JSON.parse(json);
 var buff = "";

 for(var i in obj)
 {
  //document.write('<br>' + i + '<br>');                                                                                                                                                                                                 
  for (var j in obj[i])
  {
        if (obj[i][j] == true)
          buff += "<a href=\"#\" onmousewheel=\"test()\" ><img id=\"obj[i]\" src=\"../images/pix_green.jpg\" border=\"0\" /></a>";
        else
          buff += "<a href=\"#\" onmousewheel=\"test()\" ><img id=\"obj[i]\" src=\"../images/pix_gray.jpg\" border=\"0\" /></a>";
  }
    buff += "<br>";
 }
  document.getElementById('frisekk').innerHTML = buff;
}
我怎样才能得到我的img的id

这里有所有的html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Techniques AJAX - XMLHttpRequest</title>
<script>
 var unit = 60;
 var date = 'Mon Oct 20 2014 19:25:00 GMT (CET)';

 function request(callback)
 {
  var xhr = getXMLHttpRequest();
  var frise = 600;
  var template = 'lab';

  xhr.onreadystatechange = function()
  {
   if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
    callback(xhr.responseText);
  };

  xhr.open("GET", "a.php?Frise=" + frise + "&Unit=" + unit + "&Template=" + template + "&Date=" + date, true);
  xhr.send(null);
}

function readData(sData)
{
 parse_data(sData);
}

function parse_data(data)
{
 var json = data;
 var obj = JSON.parse(json);
 var buff = "";
 for(var i in obj)
 {
   //document.write('<br>' + i + '<br>');                                                                                                                                                                                                                                                                                                
   for (var j in obj[i])
   {
      //document.write(j + "=" + obj[i][j] + '<br>');                                                                                                                                                                                                                                                                                   
      if (obj[i][j] == true)
        buff += "<a href=\"#\" onmousewheel=\"test()\" ><img id=\"obj[i]\" src=\"../images/pix_green.jpg\" border=\"0\" /></a>";
      else
        buff += "<a href=\"#\" onmousewheel=\"test()\" ><img id=\"obj[i]\" src=\"../images/pix_gray.jpg\" border=\"0\" /></a>";
    }
   buff += "<br>";
  }
  document.getElementById('frisekk').innerHTML = buff;
}

function test()
{
 var obj = document.getElementById('img');
 alert(obj.length);
 if (event.wheelDelta >= 120)
   unit -= 60;
 else
   unit += 60;
 request(readData);
}

</script>


<script>
function getXMLHttpRequest()
{
 var xhr = null;
 if (window.XMLHttpRequest || window.ActiveXObject) {
   if (window.ActiveXObject)
   {
     try 
     {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
     } 
     catch(e)
     {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
     }
    } 
    else 
    {
      xhr = new XMLHttpRequest();
    }
   }
   else 
   {
    alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
    return null;
   }
  return xhr;
 }
</script>
<span id="frisekk"> <br/> </span>
</head>
<body>
<form>
<p>
<input type="button" onclick="request(readData);" value="Exécuter" />
</p>
</form>
</body>
</html>

AJAX-XMLHttpRequest技术
var单位=60;
风险值日期='2014年10月20日星期一19:25:00 GMT(CET)';
函数请求(回调)
{
var xhr=getXMLHttpRequest();
var-frise=600;
var模板='lab';
xhr.onreadystatechange=函数()
{
如果(xhr.readyState==4&&(xhr.status==200 | | xhr.status==0))
回调(xhr.responseText);
};
xhr.open(“GET”、“a.php?Frise=“+Frise+”&Unit=“+Unit+”&Template=“+Template+”&Date=“+Date,true”);
xhr.send(空);
}
函数读取数据(sData)
{
数据分析(sData);
}
函数解析_数据(数据)
{
var json=数据;
var obj=JSON.parse(JSON);
var buff=“”;
用于(obj中的var i)
{
//写('
'+i+'
'); 对于(obj[i]中的var j) { //文件。写(j+“=”+obj[i][j]+'
'); if(obj[i][j]==true) buff+=”; 其他的 buff+=”; } buff+=“
”; } document.getElementById('frisekk')。innerHTML=buff; } 功能测试() { var obj=document.getElementById('img'); 警报(目标长度); 如果(event.wheelDelta>=120) 单位-=60; 其他的 单位+=60; 请求(读取数据); } 函数getXMLHttpRequest() { var xhr=null; if(window.XMLHttpRequest | | window.ActiveXObject){ if(window.ActiveXObject) { 尝试 { xhr=新的ActiveXObject(“Msxml2.XMLHTTP”); } 捕获(e) { xhr=新的ActiveXObject(“Microsoft.XMLHTTP”); } } 其他的 { xhr=newXMLHttpRequest(); } } 其他的 { 警报(“Votre navigateur ne supporte pas l'objet XMLHTTPRequest…”); 返回null; } 返回xhr; }


文档。getElementById
不会为您获取id,而是通过传递的id获取元素。因为你没有发布你的HTML,我真的不能说你的

var finalElement=document.getElementById(“我的图像”)

  • 找到标记名为“img”的所有元素,然后在它们中搜索右键
  • 
    var elements=document.getElementsByTagName(“img”);
    var finalElement=假;
    对于(var i=elements.length-1;i>=0;i--){
    //匹配您的元素并返回
    如果(/*标准*/){
    最终元素=元素[i];
    打破
    }
    }

  • 页面上只有一个图像,然后选择:
  • 
    var finalElement=document.getElementsByTagName(“img”)[0]

    更新 您的
    onmouseheel
    属性可能受支持,但是您需要稍微改变一下,因为您的链接有
    onmouseheel
    事件

    <!-- add the 'this' keyword to your test() function to pass the <a> element -->
    <a href="#" onmousewheel="test(this)"><img src="path/to/image.jpg" /></a>
    
    现在,您可以轻松地访问元素的唯一子元素图像,并对其进行处理


    我不确定OnMouthHeWEL是否支持一个元素,因此PalASE考虑了一个<代码> OnCutabor < /Cord>或<代码> OnMouthOver 来测试这个函数。如果您决定在MouseOver上使用

    进行测试,请使用
    控制台.log
    来记录而不是
    警报
    ,否则您将淹没在警报中。

    您不能解析函数调用中的id吗? 例如:

    功能中,

    function test(id)??
    

    img
    是图像的id吗?你确定它有
    ?你能把生成的html发布出来吗?如@ekad在上一篇评论中告诉您的,要检查id,图像的id是obj[i],包含像1456058一样的内容,这取决于json,我也不确定
    obj[i]
    是否应该用作id,如果
    obj[i][j]
    存在,那么
    obj[i]
    作为一个对象,而人们期望字符串作为有效的id属性。是的,它是
    getElementsByTagName('img')
    那么长度应该可以工作。它告诉我“未捕获引用错误:obj未定义”最好是
    onmouseheel=\“test(obj[i])\”
    因为当用户在img上做鼠标滚轮时,我需要img的obj[i]。但它不起作用。@leykan检查我的更新,看看你如何仍然可以访问嵌套在你的
    中的
    元素,即使您在
    上执行
    onmouseheel
    操作,它也会告诉我
    未捕获类型错误:对象不是函数
    ,但是否可以不通过img而通过onmouseheel=“test(obj[i])”?因为我需要更多的对象,imgWoops,实际上
    childNodes()
    不是一个函数。我已经将其修改为
    childNodes[0]
    ,应该可以使用。我还更改了单词
    object
    ,它没有改变,但它更安全,因为object在某些实例中保留为单词。我已经测试过了,它可以工作。但是如果我输入
    id=“obj[I]”
    ,它将打印我
    obj[I]
    ,而不是
    obj[I]
    的值,是否可以输入
    obj[I]
    /* Add a variable to receive your <a> in your test() function. */
    function test(link){
        /* Use childNodes[0] to select the first child element of the a. */
        var image = link.childNodes[0];
        /* Will alert '1' if the <a> has a child, will alert '0' if the <a> is empty.*/
        alert(image.length);
    }
    
    onmousewheel=test(obj[i])
    
    function test(id)??