如何获得家长';s儿童';javascript中的s值
当我点击“下载”字时,我想得到一个标签的值,它是bullet01.png 我搜索了parent()->child(),sibbines(),但对我无效 我需要使用onclick函数。因为jquery在我的代码中不起作用,但当我在onclick内部使用时,它就起作用了 所以我用这个 onclick=“下载单击(文件列表0)” 有更多的tr标签和更多的td id值 我用javascript列出了这个列表 我将此功能设置为window.onload如何获得家长';s儿童';javascript中的s值,javascript,Javascript,当我点击“下载”字时,我想得到一个标签的值,它是bullet01.png 我搜索了parent()->child(),sibbines(),但对我无效 我需要使用onclick函数。因为jquery在我的代码中不起作用,但当我在onclick内部使用时,它就起作用了 所以我用这个 onclick=“下载单击(文件列表0)” 有更多的tr标签和更多的td id值 我用javascript列出了这个列表 我将此功能设置为window.onload function showOk() { $.aj
function showOk() {
$.ajax({
url: 'http://localhost:8090/curriculum1.4/login_controller.jspx?cmd=fileList',
type: 'get',
dataType: 'json',
success: function(resp) {
var obj = JSON.parse(resp.file.result);
var list4;
var a4;
var node;
var element;
for (i = 0; i < Object.keys(obj.univ).length; i++) {
// console.log(obj.univ[i].file);
list4 = document.createElement("li");
a4 = document.createElement("a");
node = document.createTextNode(obj.univ[i].file);
a4.setAttribute('href', obj.univ[i].file);
list4.appendChild(a4);
a4.appendChild(node);
var num=i;
var inte='fileList'+num;
console.log(inte);
element = document.getElementById(inte);
element.appendChild(list4);
}
},
error: function(xhr, status, error) {
alert("오류입니다.");
}
});
}
js日志
这是一个简单的.html文件
<table width="500" cellpadding="0" cellspacing="0" border="1" class="blueone">
<tr>
<td><input type="checkbox" id="a2" name="전체동의" /></td>
<td id="fileList0" class="selected">
<li>
<a href="bullet01.png">bullet01.png</a>
</li>
</td>
<td><a class="checkBtn" onclick="downloadClick(fileList0)">download</a></td>
</tr>
<tr>
<td><input type="checkbox" id="a3" name="전체동의" /></td>
<td id="fileList1">
<li>
<a href="bullet011.png">bullet011.png</a>
</li>
</td>
<td><a class="checkBtn" onclick="downloadClick()">다운로드</a></td>
</tr>
<tr>
<td><input type="checkbox" id="a4" name="전체동의" /></td>
<td id="fileList2"></td>
<td><a class="checkBtn" onclick="downloadClick()">다운로드</a></td>
</tr>
<tr>
<td><input type="checkbox" id="a5" name="전체동의" /></td>
<td id="fileList3"></td>
<td><a class="checkBtn" onclick="downloadClick()">다운로드</a></td>
</tr>
</table>
다운로드
다운로드
다운로드
实现这一点有多种方法-一种方法是将保留的事件
对象添加到下载单击()
绑定和方法签名:
HTML:
<a class="checkBtn" onclick="downloadClick(event, fileList0)">download</a>
这样做可以方便地确定用户当前单击“来自”的元素(即通过事件
对象当前目标
字段)。从那里,您可以通过parentElement
和querySelector
(如下所述)遍历DOM,以找到并提取所需的href
数据:
/*
将事件参数添加到函数中,允许我们
确定正在单击的当前元素
*/
函数下载单击(事件,val){
/*
通过parentElement字段遍历树。我已经
为了清晰起见,将其分解为多个步骤
*/
var a=event.currentTarget;
var td=a.parentElement;
var tr=td.parentElement;
/*
具有与要访问的DOM匹配的选择器的用户querySelector
包含要提取的数据的锚元素
*/
var id=tr.querySelector('td li a').getAttribute('href');
console.log(id);
}
下载
获取id为fileList0
具有子元素a
的元素,然后获取该元素的文本内容
函数下载点击(){
const value=document.querySelector('#fileList0 a').textContent;
console.log(值);
}
下载
“因为jquery在我的代码中不起作用,但当我在onclick内部使用时,它就起作用了。”
听起来像是包含了jquery,但它不起作用
这是因为DOM元素是动态加载的。不能在事件存在之前将其绑定到元素
但是,您可以将元素绑定到HTML的正文
,然后筛选元素:
$(“body”)。在(“单击“,”.checkBtn”,函数()上{
var id=$(this.closest(“tr”).find(“.selected li a”).attr(“href”);
console.log(id);
});代码>
下载
< /代码> @ DACReNDENY的答案肯定更可靠/灵活/不易碎>强>如果< /强>您没有父元素的ID,那么我会考虑实际删除ID,并用一个公共类替换,然后实现他的解决方案。
但是…
如果已经有了id,那么从目标元素遍历DOM是毫无意义的,因为文档中应该只有一个id为该id的元素。如果ID在那里,那么您可以使用
函数下载点击(id){
var parent=document.getElementById(id);
links=parent.querySelectorAll(“li:n类型(1)a:n类型(1)”,
firstHref=links[0].href;
返回firstHref;
}
下载
<a class="checkBtn" onclick="downloadClick(event, fileList0)">download</a>
function downloadClick(event, val) {