2

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

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.

4

3 回答 3

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();
于 2012-08-03T04:14:09.657 回答
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();

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

于 2012-08-03T04:15:01.493 回答
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();
于 2012-08-03T04:22:09.320 回答