很抱歉,如果这个问题与已经提出的其他问题类似,但即使在搜索完这些问题之后,我也没有得到预期的结果。
我的页面中有超过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'));
}
仍然得到相同的“未定义”结果
先谢谢你
答案 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>