我可以在表单中查找元素时简化这个jQuery吗?

时间:2012-08-03 04:10:47

标签: jquery

有没有办法可以简化这段代码:

var topic_html = obj.$form.find("#select-topic").html();
var topic_val = obj.$form.find("#select-topic").val();
var topic_text = obj.$form.find("#select-topic option:selected").text();

我知道它相当干净但有一种方法可以避免obj.$form.find.的三个实例

3 个答案:

答案 0 :(得分:8)

您不需要每次都找到选择,将其缓存在变量中。

var topic = obj.$form.find("#select-topic");
var topic_html = topic.html();
var topic_val = topic.val();
var topic_text = topic.find("option:selected").text();

答案 1 :(得分:4)

您正在通过其ID获取对象 - 您为什么要obj.$form.find

只需要$('#select-topic') - 除非你需要确保该元素是表单的子元素吗?

反正:

var select = $('#select-topic');
var topic_html = select.html();
var topic_val = select.val();
var topic_text = select.find('option:selected').text();

为什么你需要同一件事的所有三个版本?

答案 2 :(得分:0)

@ xdazz的回答略有不同。我尝试将其保留为单个var关键字。

var topic = obj.$form.find("#select-topic"),
    topic_html = topic.html(),
    topic_val = topic.val(),
    topic_text = topic.find("option:selected").text();