如何选择&#39; id&#39;使用jQuery </div>的<div>的属性

时间:2015-04-01 05:56:19

标签: jquery html

很抱歉,如果这个问题与已经提出的其他问题类似,但即使在搜索完这些问题之后,我也没有得到预期的结果。

我的页面中有超过1个div标签,如:

<div id='slider1'>&@Slider@&</div>

<div id='slider2'>&@Slider@&</div>

我正在使用jQuery来选择div的id属性,其值将是&amp; @ Slider @&amp;因为我需要Id用于以后的目的。

我尝试使用[attribute = value]选择器,但在这种情况下它没有按预期工作

function showtext() {

    alert($("[text='slider']").prop('id'));

} 

我将在某个事件上调用此函数,问题是我在警告框中得到“未定义”。我哪里错了。

甚至尝试使用

function showtext() {

    alert($("[text='slider']").attr('id'));

} 

仍然得到相同的“未定义”结果

先谢谢你

4 个答案:

答案 0 :(得分:6)

您需要使用contains selector,因为您要测试div的文本内容

alert($("div:contains('Slider')").prop('id'));

您的选择器$("[text='slider']").prop('id')尝试查找属性为text且值为slider的元素,例如<div text="slider"></div>

答案 1 :(得分:3)

你可以使用。

console.log($("div:contains('Slider')").prop('id'));

以上代码仅执行首次ID,如果您想获取所有ID,请尝试以下代码

$("div:contains('Slider')").each(function() {
alert(this.id)
});

请参阅此fiddler Demo

答案 2 :(得分:1)

使用此功能。

$(document).ready(function(){

  $( $("div:contains(Slider)") ).each(function() {
   alert($(this).attr('id'));
  });

以上代码将返回匹配id

的所有匹配div的列表

答案 3 :(得分:0)

您可以使用包含来识别div中是否包含滑块文本。我正在使用javascript数组来容纳div的所有id。我希望这会奏效 -

<script type="text/javascript">
var divs = [];
$(document).ready(function(){
  $( $("div:contains(Slider)") ).each(function() {
  divs.push($(this).attr('id')));
  });
console.log(divs);
});
</script>