Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 按值获取HTML表行_Javascript_Html_Jquery_Html Table - Fatal编程技术网

Javascript 按值获取HTML表行

Javascript 按值获取HTML表行,javascript,html,jquery,html-table,Javascript,Html,Jquery,Html Table,我有一个HTML表格: 名称 喜爱的颜色 汤姆 橙色 山姆 红色 我想创建一个JS函数,它将在第一列中找到“Sam”,并将第二列替换为“Green” 函数替换(搜索,替换){ } 这是一个基于另一篇文章的函数,它在表中查找与searchText匹配的任何单词,并将其替换为replace字符串。我要做的是只按第一列过滤,然后更改找到的行的第二列中的文本 函数findandplace(searchText、replacement、searchNode){ 如果(!searchText | |替

我有一个HTML表格:


名称
喜爱的颜色
汤姆
橙色
山姆
红色
我想创建一个JS函数,它将在第一列中找到
“Sam”
,并将第二列替换为
“Green”

函数替换(搜索,替换){
}
这是一个基于另一篇文章的函数,它在表中查找与
searchText
匹配的任何单词,并将其替换为
replace
字符串。我要做的是只按第一列过滤,然后更改找到的行的第二列中的文本

函数findandplace(searchText、replacement、searchNode){
如果(!searchText | |替换类型==='未定义'){
//如果需要,请在此处抛出错误。。。
返回;
}
var regex=typeof searchText==='string'?
新的RegExp(searchText,'g'):searchText,
childNodes=(searchNode | | document.body)。childNodes,
cnLength=childNodes.length,
排除='html、标题、样式、标题、链接、元、脚本、对象、iframe';
while(cnLength--){
var currentNode=childNodes[cnLength];
如果(currentNode.nodeType===1&&
(不包括+',').indexOf(currentNode.nodeName.toLowerCase()+',')=-1){
arguments.callee(searchText、replacement、currentNode);
}
if(currentNode.nodeType!==3 | |!regex.test(currentNode.data)){
继续;
}
var parent=currentNode.parentNode,
frag=(函数(){
var html=currentNode.data.replace(regex,replacement),
wrap=document.createElement('div'),
frag=document.createDocumentFragment();
wrap.innerHTML=html;
while(wrap.firstChild){
附件(包裹第一个孩子);
}
返回碎片;
})();
parent.insertBefore(frag,currentNode);
parent.removeChild(currentNode);
}
}
分析:

函数changeColor(名称、颜色){
$(“#可着色tr”)。每个(函数(i,el){
if($(this).children(“td:eq(0)”).text()==name){
$(“#可着色tr:eq(“+i+”))。子对象(“td:eq(1)”)。文本(颜色);
}
});  
}
变色(“山姆”、“绿色”)

JS-Bin
名称
喜爱的颜色
汤姆
橙色
山姆
红色

@charlietfl,我一直在努力寻找如何做到这一点。我最接近的方法是找到一个查找和替换文本的函数,但我不知道如何只按第一列排序,然后替换第二列中的文本。这是基于一篇文章,我将把代码编辑成问题。