1
<input type="text" value="Here" id="aaa"> <br />
<span id="check">check</span>

$('#check').click(function(){
   alert($('input [value="Here"]').attr('id'));
})

http://jsfiddle.net/mHYsJ/

为什么这不起作用?如何使用选择器 VALUE 获取属性?

4

4 回答 4

3

您不应该在元素和属性选择器之间使用空格,目前您的选择器尝试在输入元素中查找具有属性value='here'的元素,请尝试以下操作:

$('#check').click(function(){
   alert($('input[value="Here"]').attr('id'));
})

演示

于 2012-08-06T18:55:12.203 回答
2

去掉空格应该是:

alert($('input[value="Here"]').attr('id'));
于 2012-08-06T18:55:13.317 回答
2

删除选择器中的空格。

$('input[value="Here"]').attr('id')

这个空间的意思是“的后代”。

于 2012-08-06T18:55:37.117 回答
0

这是一个有用的函数(取自此处),它获取包含指定属性值的所有元素:

var getAllElementsWithAttribute = function (attribute) {
    var matchingElements = [];
    var allElements = document.getElementsByTagName('*');
    for (var i = 0; i < allElements.length; i++) {
        if (allElements[i].getAttribute(attribute)) {
            matchingElements.push(allElements[i]);
        }
    }
    return matchingElements;
};
于 2015-12-13T13:32:58.760 回答