使用'这个'选择属性,然后与选定的HTML属性进行比较

时间:2014-06-27 02:47:51

标签: javascript jquery html

我正在尝试选择一些HTML内容,然后使用HTML内容与数组元素进行比较。

这是我正在使用的代码。

 $('.foo').each(function (i) {
        $(this).click(function () {
            for (i in Data) {
                foo = JSON.parse(Data[i]);

                for (f in foo) {

                    if (foo[f].Title == **???**) {

                        $('.vert-text').html('<h1>' + foo[f].Title + '</h1>');

                        $('#topRow').html('<h3>' + foo[f].Content + '<h3>');
                    }
                };
            };
        });
    });

如何使用点击时选择的HTML文本与foo[f].Title进行比较?

我能够与一个字符串进行比较,这适用于一个场景,但它显然不适用于任何其他选项。

修改  我想要选择的标记采用以下格式:

<ul>
    <li>Heading1</li>
    <li>Heading2</li>
    <li>Heading3</li>
    <li>Heading4</li>
</ul>

选择标题并将其与对象中的标题匹配,然后显示相应的信息。

任何想法都会很棒。

干杯。

2 个答案:

答案 0 :(得分:2)

你可以使用$(this).text()(你可能需要修剪它),如

if (foo[f].Title == $.trim($(this).text())) {
}

也没有必要使用.each()

//click handler for all elements
$('.foo').click(function () {
    for (i in Data) {
        foo = JSON.parse(Data[i]);

        for (f in foo) {

            if (foo[f].Title == $.trim($(this).text())) {

                $('.vert-text').html('<h1>' + foo[f].Title + '</h1>');

                $('#topRow').html('<h3>' + foo[f].Content + '<h3>');
            }
        };
    };
});

答案 1 :(得分:0)

如果你想要html内容:

if (foo[f].Title == $(this).html()) {

如果您只想要文字内容:

if (foo[f].Title == $(this).text()) {