【问题标题】:js match serarching with arrayjs匹配搜索与数组
【发布时间】:2012-10-04 17:37:57
【问题描述】:

我正在尝试从按行排序的列表中获取每 3 个名称的第一个日期。 数组是动态的。没有数组,它工作得很好......

但是从这里我无法让它工作。有没有办法让数组进入匹配?

var array=new Array();
array[1]='name1';
array[2]='name2';
array[3]='name3';

for (var k = 1; k <= array.length; k++) {
    tow = document.getElementById('cal_table');
    zap = tow.getElementsByTagName('tr');

    for (var i=1; i<=zap.length; i++){
        opt0 = zap[i].innerHTML.match(/<td>array[k]<\/td>|<td>.*2012<\/td>/img);
        if(opt0.length==2){
            alert(opt0);
            break
        }
    }
}

【问题讨论】:

  • array[k] 是文字字符串,还是从索引 k 处的数组返回的值?此外,您能否展示您的(相关/SSCCE)HTML 结构,理想情况下,JS Fiddle 或类似的现场演示会很有用。
  • 为什么你的数组从索引1而不是0开始?
  • 小贴士:将towzap移到循环外,这样代码会更快
  • 您是在问 a) 如何从数组中获取每三个元素,b) 如何使用该元素的值来构建正则表达式?
  • 另外,鉴于您似乎没有在任何地方使用 tow(除了查找tr 元素),您可以只使用zap = document.getElementById('cal_table').getElementsByTagName('tr');

标签: javascript arrays match innerhtml


【解决方案1】:

您必须使用 RegExp 构造函数,即new RegExp("&lt;td&gt;" + array[k] + "|&lt;td&gt;.*2012&lt;\/td&gt;", "img")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 2018-03-24
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多