获取具有相同#Id的html元素的文本值

时间:2015-06-25 08:57:53

标签: javascript jquery html

<a id="s_6_2_19_0_mb" class="siebui-ctrl-drilldown" name="Name" rowid="1" href="javascript:void(0)">00102400010630001</a>
<a id="s_6_2_19_0_mb" class="siebui-ctrl-drilldown" name="Name" rowid="2" href="javascript:void(0)">00102402608820001</a>

我需要获取这两个元素的文本值。所以我使用以下代码:

$('a#s_6_2_19_0_mb[rowid="1"]').text();
$('a#s_6_2_19_0_mb[rowid="2"]').text();

但#Id会因页面而异。所以我在一个变量中得到了id,比如&#34; idVal&#34;。并且idVal = s_6_2_19_0_mb。所以现在要获取文本值我使用下面的代码

$('\'a' +'#'+idVal+'\[rowid\=\"1\"]'+'\'').text();

但这会引发一个错误。请告诉我如何在上述情况下使用#id的变量提取文本值

7 个答案:

答案 0 :(得分:1)

好吧,正如其他人所说 ID必须是唯一的,但是如果真的无法改变(并假设类和行可能不同),那么你可以做:

$("a[id='"+idVal+"'][rowid='1']").text();

答案 1 :(得分:0)

我在HTML中是唯一的,因此请使用class而不是id

$(".siebui-ctrl-drilldown[rowid = 1]").text();
$(".siebui-ctrl-drilldown[rowid = 2]").text();

答案 2 :(得分:0)

你不需要逃避=,也不需要&#34; s,你的引号数量不均匀。 所以你应该有这样的东西:

String

哦,是的,正如其他人所说的那样,身份证应始终是独一无二的。尝试访问具有相同ID的多个元素将始终返回第一个元素。

答案 3 :(得分:0)

对于同一页面上的多个元素,您永远不应该拥有相同的ID。但是您可以使用类选择器来定位它们:

$("a.siebui-ctrl-drilldown[rowid=1]").text();
$("a.siebui-ctrl-drilldown[rowid=2]").text();

答案 4 :(得分:0)

像那样:

 $('a#' + idVal + '[rowid="1"]').text();

但是你必须在DOM

中避免使用相同的id

答案 5 :(得分:0)

您可以简单地使用:(删除具有相同值的ID)

$("a[rowid=1]").text();
$("a[rowid=2]").text();

答案 6 :(得分:0)

您可以简化选择器并移除a并使用以下代码,其中rowId包含您要检索的行的ID:

var linkText = $('#'+ idVal +'[rowid=\"'+ rowId +'\"]').text();

或者只是对行ID进行硬编码:

var link1Text = $('#'+ idVal +'[rowid="1"]').text();
var link1Text = $('#'+ idVal +'[rowid="2"]').text();

干杯,