如何获得准确的DIV值以发出警报

时间:2018-12-19 11:59:02

标签: javascript html

我只是想知道如何获取确切的div值? 每个div id =购物车值= 1 / div id =购物车值= 2 .......大约有10个按钮,但是当我单击每个按钮时,我看到的只是1个,因此增加了索引。 我该如何解决这个问题?

    <%
    	String url = "https://store.pinkfong.com/category/soundbook/";
    
    	String line = "";
    	int index = 0;
    
    	try {
    
    		Document doc;
    
    		doc = Jsoup.connect(url).get();
    
    		Elements media4 = doc.select("div.container ul li img ");
    
    		Elements media5 = doc.select(".title ");
    
    		for (int i = 0; i < media5.size(); i++) {
    			Element src1 = media4.get(i);
    			Element src2 = media5.get(i);
    			index++;
    
    			String templine = "<div id = 'cart' value= " + index + " >"
    					+ "<button id='button1' onclick='bb();'>button</button>" + src1.toString();
    
    			line += templine;
    			templine = src2.toString();
    			line += templine + "</div>";
    		}
    
    	} catch (IOException e) {
    
    		// TODO Auto-generated catch block
    
    		e.printStackTrace();
    
    	}
    %>
    
    <script>
    	function bb() {
    		var num = document.getElementById('cart').getAttribute('value');
    		alert(num);
    	}
    </script>
    <body>
    
    	<%=line%>
    </body>

2 个答案:

答案 0 :(得分:1)

ID应该是唯一的。 document.getElementById将始终返回第一个结果,因此,在您的情况下,它仅与第一个“购物车”匹配。

为解决这个问题,我只需要从id中选择<div>并稍微更改bb函数。首先传递被单击的按钮。

<%
// ...

String templine = "<div value= " + index + " >"
        + "<button id='button" + index + "' onclick='bb(this);'>button</button>" + src1.toString();

// ...

%>

然后,您的bb函数应接受该按钮,并使其成为父级的value

function bb(button) {
    var num = button.parentNode.getAttribute('value');
    alert(num);
}

这被认为是一种过时的方法,现代的开发人员会改用“事件委托”来处理,但这可能不在这个问题的范围之内。

答案 1 :(得分:0)

这是因为您正在使用ID。因此,它将获得ID为'cart'的第一项。