需要一种从许多相同元素中获取attr的方法

时间:2017-04-15 20:25:51

标签: javascript jquery ajax api dom

我试图访问一个元素的id,然后切掉num来拼凑一个用于ajax调用的url。我主要使用JQuery。

我已经尝试过.attr()和.data(),发现它们只返回第一个匹配,因此无论是否点击1,4或54,它每次都会返回1。

.get()只返回HTML标头对象,我还没有找到一种方法来访问它并可能拉出一个id号。

代码:



    <div class="container">
        <h3 id="title">I made the Kessel Run in 12 parsecs.</h3>
            <form id ="searchParams" method="POST">
            Now, I want to know about the
            <input list="cats" name="cats">
            <datalist id="cats">
                <option id="people" value="people"></option>
                <option id="planets" value="planets"></option>
                <option id="films" value="films"></option>
                <option id="species" value="species"></option>
                <option id="vehicles" value="vehicles"></option>
                <option id="starships" value="starships"></option>
            </datalist>
            in Star Wars.
           <input id="getInfo" type="submit">
          </form>
          <div class="display"></div>
        </div>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
        <script type="text/javascript" src="js/twelveparsecs.js"></script>
    </body>
</html>
&#13;
        conn.setRequestProperty("User-Agent","Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Mobile Safari/537.36");
&#13;
&#13;
&#13;

谢谢!

1 个答案:

答案 0 :(得分:1)

你的javascript无法正确使用html片段,它从第2行的失败开始

let $parent = $('h4').parent();  
// never matches on your code, you have no h4 tag
let $cat = $parent.attr('class'); 
// attr is no function of undefined, null pointer exception

id的方式就是这个;

<div id="test">

<script>
  console.log($('div').attr('id'));
</script>

如果一个标签被给出超过1次,你将在节点上用$('div')选择器返回一个JQuery对象匹配数组:

<div id="1">a</div>
<div id="2">b</div>

<script>
  let listOfElements = $('div');
  for(var i = 0; i < listOfElements.length; i++) {
    var singleElementInList = $(listOfElements[i]);
    var id = singleElementInList.attr('id');
    console.log(id);
  }
</script>

get命令是一个ajax调用,用于快速读取url的响应