Javascript评估

时间:2011-03-13 03:56:52

标签: javascript

我正在努力让以下工作。它似乎最初工作,但不知何故它停止工作

var setCommonAttr = "1_row1_common";
var val = document.getElementById("abc_" + eval("setCommonAttr")).value;

上面有什么问题?

上面的代码与我想要实现的完全不同。我给出了上面的例子,不是为了让事情复杂化。以下是我想要完成的事情:

首先,我得到一个现有元素,如下所示。元素是

<tr id="row_1_4_2009_abc" class="rowclick">
   <td></td>
</tr>

我正在使用jquery来点击一行获取id:

$(".rowclick").click(function() {
  var row_id = $(this).attr("id");
  var getAttributes = row_id.split("_");
  var setCommonAttr = getAttributes[1] + "_" + getAttributes[2] + "_" + getAttributes[3] + "_" + getAttributes[4];
  var new_row_id = document.getElementById("new_row_" + setCommonAttr).value;
});

3 个答案:

答案 0 :(得分:2)

你不应该需要eval()来做这件事。您想要的值已经是JavaScript中的变量。尝试:

var setCommonAttr = "1_row1_common";
var val = document.getElementById("abc_" + setCommonAttr).value;

答案 1 :(得分:0)

您无需调用eval()。

您可以将字符串与变量连接:

var setCommonAttr = "1_row1_common"; var val = document.getElementById("abc_" +   setCommonAttr).value;

答案 2 :(得分:0)

一切都是那种形式吗? row_xxx_xxx_xxx_xxx

如果是这样,为什么不var new_row_id = document.getElementById("new_" + row_id).value;